在选择器中更改drawable的颜色

时间:2017-03-27 22:43:32

标签: android drawable

是否可以从选择器更改drawable的颜色?

我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/ic_plus_circle_grey600_48dp" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_plus_circle_black_48dp"/>
</selector>

我尝试使用那种方式,(在这种情况下我在色调上使用选择器)但是我收到了一些错误:

<ImageView
     android:id="@+id/btAdd"
     android:layout_width="wrap_content"
     android:src="@drawable/ic_plus_circle_black_48dp"
     android:tint="@color/blue_android_focused"
     android:layout_height="wrap_content"/>

这是色调的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/blue_android_pressed" android:state_pressed="true" />
    <item android:color="@color/green" />
</selector>

3 个答案:

答案 0 :(得分:10)

在位图上使用色调(** API 21 + **):

选择器: drawable / selector_add

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <bitmap android:src="@drawable/ic_plus_circle_grey600_48dp"
            android:tint="@color/blue_android_pressed" />
    </item>
    <item>
        <bitmap android:src="@drawable/ic_plus_circle_grey600_48dp"
            android:tint="@color/colorAccent" />
    </item>
</selector>

ImageView

<ImageView
    android:id="@+id/btAdd"
    android:layout_width="wrap_content"
    android:src="@drawable/selector_add"
    android:layout_height="wrap_content"
    />

答案 1 :(得分:0)

你可以使用不同颜色的相同drawables,这对我有用

enter image description here

答案 2 :(得分:-1)

你应该使用这样的色调:

null

<ImageView android:id="@+id/activity_register_et_fullname" android:layout_width="100dp" android:layout_height="100dp" android:background="@drawable/bg_page" app:backgroundTint="@color/blue_android_focused"/> 中使用ImageView,它会被AppCompatActivity夸大(另请参阅AppCompatImageView)。您应该查看其中的代码。