禁用TextView中的Drawable

时间:2013-11-16 22:04:00

标签: android android-layout

我的布局中有TextViews。根据某些复选框,它们可能会被禁用。禁用时,文本颜色较浅。有没有办法在TextView打火机中制作drawable,或者应用不同的drawable(最好是XML,我知道如何在代码中更改它)?

3 个答案:

答案 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>