Android 在选择时更改视图颜色
当用户触摸视图时,是否有一个基本的XMLAndroid标签用于更改视图的背景色?假设它是一个可点击的文本视图。当用户触摸文本视图时,我想给出一些反馈(即更改背景颜色),以便用户知道它是一个按钮。您可以使用“样式”属性设置任何视图的背景 可以使用“样式”属性修改按钮的文本颜色、字体和背景色 步骤来做这件事 第一步。定义一个名为res/drawable/button_clickedState.XML的XML文件Android 在选择时更改视图颜色,android,android-layout,Android,Android Layout,当用户触摸视图时,是否有一个基本的XMLAndroid标签用于更改视图的背景色?假设它是一个可点击的文本视图。当用户触摸文本视图时,我想给出一些反馈(即更改背景颜色),以便用户知道它是一个按钮。您可以使用“样式”属性设置任何视图的背景 可以使用“样式”属性修改按钮的文本颜色、字体和背景色 步骤来做这件事 第一步。定义一个名为res/drawable/button_clickedState.XML的XML文件 <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/btn_pressed" />
<item
android:state_pressed="false"
android:drawable="@drawable/btn_normal" />
</selector>
按钮\u clickedState.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/btn_pressed" />
<item
android:state_pressed="false"
android:drawable="@drawable/btn_normal" />
</selector>
此stackoverflow问题提供了有关如何为任何视图设置样式属性的详细信息
为此,您需要在Resources/drawable hdpi目录下创建一个XML say background.XML
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/green"
/>
</selector>
可选的
现在,您可能(也可能不)希望在用户触摸/按下按钮时更改文本颜色,因为您需要以创建background.xml的相同方式在Resources/color目录中创建另一个xml,比如“textcolor.xml”
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- color you want when view pressed-->
<item android:color="@color/white" /> <!--or whatever is your default color-->
</selector>
[注意:在资源/值中创建一个文件color.xml并设置字符串颜色值]
#EFFBF5
#008000
是的,可以用XML完成
首先在可绘制文件夹中创建一个类似于上述答案的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/off_white" android:state_focused="true"/>
<item android:drawable="@color/off_white" android:state_pressed="true"/>
<item android:drawable="@color/white"/>
</selector>
然后设置属性android:background=“@drawable/myDrawableSelector”
发布问题后,请确保尝试他人发布的答案,并标记正确答案。
XmlResourceParser parse==getResources().getXml(R.color.textcolor);
ColorStateList csl=ColorStateList.createFromXml(getResources(), parse);
tv.setTextColor(csl);
<resources>
<color name="white"> #EFFBF5</color>
<color name="green">#008000</color>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/off_white" android:state_focused="true"/>
<item android:drawable="@color/off_white" android:state_pressed="true"/>
<item android:drawable="@color/white"/>
</selector>
<TextView
android:id="@+id/login_email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:background="@drawable/myDrawableSelector"
android:padding="12dp" />