Android 更改不同状态下TextView的颜色
我想改变不同状态下文本视图的颜色,例如按下、聚焦等。 我正在使用下面的代码,我需要添加一些更改TextView颜色的代码Android 更改不同状态下TextView的颜色,android,textview,android-studio-2.3,Android,Textview,Android Studio 2.3,我想改变不同状态下文本视图的颜色,例如按下、聚焦等。 我正在使用下面的代码,我需要添加一些更改TextView颜色的代码 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <stroke
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke android:width="1dp" android:color="#FFFFFF" />
<corners android:radius="2dp"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
<item>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight" android:state_pressed="true">
<item
android:id="@android:id/mask"
android:drawable="@color/colorBackgroundDark"></item>
</ripple>
</item>
</layer-list>
您是否尝试过使用可拖动选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_category_filter_selected" android:state_enabled="true" android:state_pressed="true"></item>
<item android:drawable="@drawable/background_category_filter_not_selected" android:state_enabled="true" android:state_pressed="false"></item>
</selector>
在这个例子中,我有不同的绘图按钮时,按下或不按下。你还可以使用其他状态,如活动、聚焦。。。
后来我就这么做了
<Button
android:id="@+id/first_day_forward"
android:layout_width="0dp"
android:layout_height="36dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="2dp"
android:layout_weight="2"
android:background="@drawable/background_filter_button_square"
android:text=">"
android:textAppearance="@style/fontMontseratReg"
android:textColor="@drawable/filter_text_button" />
在本例中,我使用了一个按钮,但我认为它也适用于文本视图
要更改xml形状标记中的填充,请使用实体,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="3dp"/>
</shape>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<stroke android:width="1dp" android:color="#FFFFFF" />
<corners android:radius="2dp"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
<item android:state_pressed="true">
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight" >
<item
android:id="@android:id/mask"
android:drawable="@color/colorBackgroundDark"></item>
</ripple>
</item>
</selector>
在您的情况下,您可以这样做:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="3dp"/>
</shape>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<stroke android:width="1dp" android:color="#FFFFFF" />
<corners android:radius="2dp"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
<item android:state_pressed="true">
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight" >
<item
android:id="@android:id/mask"
android:drawable="@color/colorBackgroundDark"></item>
</ripple>
</item>
</selector>
您是否尝试过使用可拖动选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_category_filter_selected" android:state_enabled="true" android:state_pressed="true"></item>
<item android:drawable="@drawable/background_category_filter_not_selected" android:state_enabled="true" android:state_pressed="false"></item>
</selector>
在这个例子中,我有不同的绘图按钮时,按下或不按下。你还可以使用其他状态,如活动、聚焦。。。
后来我就这么做了
<Button
android:id="@+id/first_day_forward"
android:layout_width="0dp"
android:layout_height="36dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="2dp"
android:layout_weight="2"
android:background="@drawable/background_filter_button_square"
android:text=">"
android:textAppearance="@style/fontMontseratReg"
android:textColor="@drawable/filter_text_button" />
在本例中,我使用了一个按钮,但我认为它也适用于文本视图
要更改xml形状标记中的填充,请使用实体,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="3dp"/>
</shape>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<stroke android:width="1dp" android:color="#FFFFFF" />
<corners android:radius="2dp"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
<item android:state_pressed="true">
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight" >
<item
android:id="@android:id/mask"
android:drawable="@color/colorBackgroundDark"></item>
</ripple>
</item>
</selector>
在您的情况下,您可以这样做:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<corners android:radius="3dp"/>
</shape>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<stroke android:width="1dp" android:color="#FFFFFF" />
<corners android:radius="2dp"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
<item android:state_pressed="true">
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight" >
<item
android:id="@android:id/mask"
android:drawable="@color/colorBackgroundDark"></item>
</ripple>
</item>
</selector>
感谢您的回复。我尝试了选择器,但它没有给我任何输出。我已经显示了我的代码,请您告诉我将选择器放在哪里??不要忘记标记为答案,这样它也可以帮助其他人:)谢谢您的回答。我尝试了选择器,但它没有给我任何输出。我已经显示了我的代码,请告诉我将选择器放在哪里??不要忘记标记为答案,这样它也可以帮助其他人:)