Android 使用ImageView作为选项卡指示器处理选定/未选定状态

Android 使用ImageView作为选项卡指示器处理选定/未选定状态,android,android-tabhost,Android,Android Tabhost,我在TabActivity中使用ImageView作为选项卡指示器。我有两份相同jpeg文件的副本,一份缩放到原始文件的75%。我希望能够做到的是,对于选定对象使用正常大小,对于未选定对象使用较小的大小 StateListDrawable不适用于ImageView,所以我想我必须自己处理这个问题。我所能找到的似乎与选项卡选择更改相关的是TabHost.onTabChanged(String tabId)——我假设tabId是我传递给new TabSpec(…)的字符串 这是跟踪选项卡更改的唯一方

我在TabActivity中使用ImageView作为选项卡指示器。我有两份相同jpeg文件的副本,一份缩放到原始文件的75%。我希望能够做到的是,对于选定对象使用正常大小,对于未选定对象使用较小的大小


StateListDrawable不适用于ImageView,所以我想我必须自己处理这个问题。我所能找到的似乎与选项卡选择更改相关的是
TabHost.onTabChanged(String tabId)
——我假设tabId是我传递给
new TabSpec(…)
的字符串


这是跟踪选项卡更改的唯一方法吗?使用事件处理程序(一个或多个处理程序)允许以前选择的选项卡更改视图状态,然后让新选项卡更改视图状态,这将非常有用。我可以维护一个变量,例如
int currentSelection
,但如果它能自动化一点,它将非常有用。

解决方案:我的理想方法是在ImageView中使用StateListDrawables,但在尝试使用ImageView.setImageDrawable()时,我遇到了ClassCastException使用xml文件定义状态图像


答案是使用setImageResource(),它完全满足我的需要。感谢Commonware为我指明了正确的方向。

“StateListDrawable不适用于ImageView”-当然可以。@Commonware:当我尝试使用ImageView的setImageDrawable()时,当我使用XML文件定义StateListDrawable的“选择器”时,我会遇到ClassCastException。我和那个人绕了一圈,没法解决它。有没有指向示例代码的链接?请使用
setImageResource()
,不要使用
setImageDrawable()
@commonware:Ah!非常感谢。这可能是我昨晚唯一没有尝试的事情,因为我慢慢地让自己发疯试图解决它。第一次尝试TabActivity,但我以后会记得的。再次感谢。