2011-01-14 48 views
0

我在TabActivity中使用ImageViews作为我的Tab指标。我有两个相同的jpeg文件副本,一个缩放到原始文件的75%。我想要做的是使用正常大小选择和较小的未选中。使用ImageView作为选项卡指示器处理选定/未选择状态

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

这是跟踪标签更改的唯一方法吗?让一个事件处理程序(或处理程序)允许先前选择的选项卡更改视图状态,然后使新选项卡执行相同的操作会很有用。我可以保留一个变量,如int currentSelection,但如果它可以更自动一点,它会很有用。

+0

“StateListDrawable不能用于ImageView” - 确定它确实如此。 – CommonsWare 2011-01-14 01:51:57

回答

1

解决方案:我的理想方法是使用StateListDrawables我ImageViews而是试图用XML文件定义的状态图像使用ImageView.setImageDrawable()时,我得到一个ClassCastException。

答案是使用setImageResource()来代替,它可以完美地满足我所需。感谢CommonsWare为我指出了正确的方向。