我想在不同的状态下更改TextView的颜色,例如在按下,聚焦等方面。 我正在使用以下代码,我需要一些改变TextView颜色的添加。
sys.path
答案 0 :(得分:2)
您是否尝试使用可绘制选择器?
<?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" />
在示例中,我使用了Button,但我认为它也适用于Text View。
要更改xml 形状标记中的填充,请使用 solid ,如下所示:
<?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>