Ich verwende ImageViews für meine Tab-Indikatoren in einer TabActivity. Ich habe zwei Kopien der gleichen JPEG-Datei, eine auf 75% des Originals skaliert. Was ich tun möchte, ist die normale Größe für ausgewählte und die kleinere für unselected.Behandeln ausgewählter/nicht ausgewählter Status mit ImageView als Tab-Indikatoren
StateListDrawable funktioniert nicht mit ImageView, also denke ich, dass ich selbst damit umgehen muss. Alles, was ich finden kann, scheint sich auf die Änderung der Tab-Auswahl zu beziehen, ist TabHost.onTabChanged(String tabId)
- ich nehme an, dass tabId der String ist, den ich an new TabSpec(...)
übergeben habe.
Ist dies die einzige Möglichkeit, Registerkartenänderungen zu verfolgen? Es wäre nützlich, einen Event-Handler (oder Handler) zu haben, um es der zuvor ausgewählten Registerkarte zu erlauben, den Ansichtszustand zu ändern, und dann die neue Registerkarte, um dasselbe zu tun. Ich kann eine Variable wie int currentSelection
beibehalten, aber es wäre nützlich, wenn es ein bisschen mehr automatisiert sein könnte.
"StateListDrawable funktioniert nicht mit ImageView" - sicher ist es. – CommonsWare
@CommonsWare: Ich erhalte eine ClassCastException, wenn ich versuche, ImageViews setImageDrawable() zu verwenden, wenn ich eine XML-Datei verwende, die den 'Selektor' für eine StateListDrawable definiert. Ich bin mit diesem im Kreis herumgelaufen und konnte es nicht lösen. Irgendwelche Links zu Beispielcode, auf die Sie mich verweisen können? – Squonk
Verwenden Sie 'setImageResource()', nicht 'setImageDrawable()'. – CommonsWare