我的布局中有TextViews。根据某些复选框,它们可能会被禁用。禁用时,文本颜色较浅。有没有办法在TextView打火机中制作drawable,或者应用不同的drawable(最好是XML,我知道如何在代码中更改它)?
答案 0 :(得分:0)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_disable" android:state_enabled="false"/>
<item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_normal"/>
</selector>
将其设置为textview的背景,而不仅仅是drawable
答案 1 :(得分:0)
Drawable.setAlpha()
设置drawable的不透明度,您可能希望执行以下操作:
// When the checkbox is selected
int alpha = 63; // Change the best value to fit your need
drawable.setAlpha(alpha);
答案 2 :(得分:0)
从minSdkVersion = 23开始,可以使用xml中的选择器初始化drawableTint。例如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableEnd="@android:drawable/ic_delete"
app:drawableTint="@color/drawabe_tint_selector" />
选择器,将其放入res / color / drawabe_tint_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@android:color/darker_gray" />
<item android:color="@android:color/holo_blue_dark"/>
</selector>