我目前正在尝试在Android中实现一个ListVIEw,其中包含带有图标和描述文本的行.当用户按下一行时,背景颜色应该改变,图标应该被替换,如下图所示.
使用选择器更改背景没有问题.但我只是想不出一个简单的方法来改变图标.我尝试的是添加2个相互重叠的图标:
<relativeLayout androID:layout_wIDth="50dp" androID:layout_height="50dp" androID:padding="10dp" > <ImageVIEw androID:ID="@+ID/general_List_item_icon" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:scaleType="centerInsIDe" /> <ImageVIEw androID:ID="@+ID/general_List_item_icon_active" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:visibility="gone" /></relativeLayout>
然后我在每个ImageVIEw中放置一个drawable,并希望在用户按下该行时切换可见性.是否有可能使用类似于背景的选择器来执行此 *** 作?
另外:由于ListVIEw是动态填充的,因此使用带有静态可绘制引用的选择器不起作用.
解决方法:
您可以使用setChoiceMode
ListVIEw.setChoiceMode(ListVIEw.CHOICE_MODE_SINGLE);
在调用set adapter之前调用此方法.并覆盖适配器的getvIEw方法.
示例代码.
public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { if(convertVIEw!=null){ ImageVIEw img = (ImageVIEw)convertVIEw.findVIEwByID(R.ID.imageVIEw1); if(myList.isItemChecked(position)){ convertVIEw.setBackgroundcolor(color.WHITE);// here you can set any color. img.setimageResource(R.drawable.img1);//img1 is stored in your rawable folder. }else{ convertVIEw.setBackgroundcolor(0); img.setimageResource(R.drawable.img2); } } return super.getVIEw(position, convertVIEw, parent); }
我希望这能为您提供您想要的解决方案.祝一切顺利.谢谢.
总结以上是内存溢出为你收集整理的按下时更改Android ListView条目中的图标全部内容,希望文章能够帮你解决按下时更改Android ListView条目中的图标所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)