在我的应用程序中,我有一个滑块,可以在两个不同的线性布局之间滑动,其中有语言图像按钮,如下所示。我希望这些图标为灰度,并且只有在用户点击时才会着色。我有灰度版的所有图标,我只是错过了那个xml行。谢谢你的时间
修改 我忘了发布线性布局的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_horizontal" >
<ImageView
android:id="@+id/galika"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/gallika"
android:layout_weight="1" />
<ImageView
android:id="@+id/germanika"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/germanika"
android:layout_weight="1" />
<ImageView
android:id="@+id/ellinika"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/ellinika"
android:layout_weight="1" />
<ImageView
android:id="@+id/agglika"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/agglika"
android:layout_weight="1" />
</LinearLayout>
答案 0 :(得分:1)
使用selector
来具体化状态:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#f8f8f8" />
</selector>
您还可以在不同的状态下定义其他绘图或其他形状。
答案 1 :(得分:1)
您可以将selector用作ImageViews src。
selector_flag.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/pressed_flag" android:state_pressed="true"/>
<item android:drawable="@drawable/normal_flag"/>
</selector>
然后将其设置为ImageViews src
ImageView iv = new ImageView(context);
iv.setImageDrawable(getResources().getDrawable(R.drawable.selector_flag))
答案 2 :(得分:1)
创建一个xml名称,例如 flag_icon.xml ,并将其放在 drawable 文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/color_version_image" android:state_pressed="true"/>
<item android:drawable="@drawable/greyscale_version_image"/>
</selector>
现在这个xml将充当图像选择器。将此xml设置为 ImageButton 中的drawable为...
android:background="@drawable/flag_icon"
如果你想以编程方式设置然后尝试这个......
ImageButton iv = findViewById(R.drawable.your_imagebutton_id);
iv.setImageDrawable(getResources().getDrawable(R.drawable.flag_icon))