Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在选择时更改视图颜色_Android_Android Layout - Fatal编程技术网

Android 在选择时更改视图颜色

Android 在选择时更改视图颜色,android,android-layout,Android,Android Layout,当用户触摸视图时,是否有一个基本的XMLAndroid标签用于更改视图的背景色?假设它是一个可点击的文本视图。当用户触摸文本视图时,我想给出一些反馈(即更改背景颜色),以便用户知道它是一个按钮。您可以使用“样式”属性设置任何视图的背景 可以使用“样式”属性修改按钮的文本颜色、字体和背景色 步骤来做这件事 第一步。定义一个名为res/drawable/button_clickedState.XML的XML文件 <?xml version="1.0" encoding="utf-8"?>

当用户触摸视图时,是否有一个基本的XMLAndroid标签用于更改视图的背景色?假设它是一个可点击的文本视图。当用户触摸文本视图时,我想给出一些反馈(即更改背景颜色),以便用户知道它是一个按钮。

您可以使用“样式”属性设置任何视图的背景

可以使用“样式”属性修改按钮的文本颜色、字体和背景色

步骤来做这件事

第一步。定义一个名为res/drawable/button_clickedState.XML的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>
按钮\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" />