Android 禁用文本视图中的可绘制内容

Android 禁用文本视图中的可绘制内容,android,android-layout,Android,Android Layout,我的布局中有文本视图。根据某些复选框,它们可能被禁用。禁用它们时,它们的文本颜色会变浅。有没有一种方法可以使TextView中的drawable更轻,或者应用不同的drawable(最好是XML,我知道如何在代码中更改它) 将其设置为文本视图的背景,而不仅仅是可绘制的。setAlpha()设置可绘制的不透明度,您可能需要执行以下操作: // When the checkbox is selected int alpha = 63; // Change the best value to fit

我的布局中有文本视图。根据某些复选框,它们可能被禁用。禁用它们时,它们的文本颜色会变浅。有没有一种方法可以使TextView中的drawable更轻,或者应用不同的drawable(最好是XML,我知道如何在代码中更改它)


将其设置为文本视图的背景,而不仅仅是可绘制的。setAlpha()设置可绘制的不透明度,您可能需要执行以下操作:

// When the checkbox is selected
int alpha = 63; // Change the best value to fit your need
drawable.setAlpha(alpha);

从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>

哦,对不起,我没有看到你已经知道如何在.java中实现这一点,请忽略这篇文章
<?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>