我正在使用图像选择器来更改我的标签小部件图像图标,当我选择任何一个图像视图时,该图像视图的图像应该更改。为此,我使用了以下代码,但它运行良好,但问题是 android:state_pressed =" true" 正在运行,但 android:state_selected ="真的" 没有在任何图片视图中工作,我遇到了这个问题,任何人都可以帮助我,回答会很明显。谢谢你。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_contacts_vippie_selected" android:state_selected="true"/>
<item android:drawable="@drawable/ic_contacts_vippie"/>
这是我的Imageview:
<ImageView
android:id="@+id/hiiMoblieContact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/flexi_contact_selector" />
答案 0 :(得分:2)
使用切换按钮或复选框或单选按钮代替图像视图。例如,我使用复选框。
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/hiiMoblieContact"
android:button="@drawable/flexi_contact_selector"/>
<强> flexi_contact_selector 强>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_contacts_vippie_selected" android:state_checked="true" />
<item android:drawable="@drawable/ic_contacts_vippie" />
</selector>
希望这会对你有帮助..
答案 1 :(得分:1)
Imageview不会保存状态。但不要担心,有一个解决方法。使用toggleButtons
并设置背景或使用CheckableLinearlayout
作为imageview的父级。 Xml的imageview应该是这样的 -
<package_name.CheckableLinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/hiiMoblieContact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="false"
android:duplicateParentState="true"
android:src="@drawable/flexi_contact_selector"/>
</package_name.CheckableLinearLayout>
更改以粗体突出显示。现在你可以处理checkablelinearlayout的set checked方法。例如,如果您将checkacle linearlayout设置为true,则图像将自动更改。您必须在项目中创建此CheckableLinearLayout
课程,其链接为 - http://developer.android.com/intl/es/samples/CustomChoiceList/src/com.example.android.customchoicelist/CheckableLinearLayout.html