背景按钮的色调仅在Android 5.1.1上显示

时间:2015-12-06 17:54:58

标签: android emulation android-5.1.1-lollipop

我正在尝试更改backgroundTintbutton的{​​{1}}。

当我更改它时,我会在android上看到它,但是当我打开Android Studio(4.4)时,emulator没有显示。

但是当我在backgroundTint上正常更改background节目时。

此外,显示与emulator不同的某些button正在显示

我发现backgroundTint仅在Android 5.1.1上接受,即使在5.0上也没有,我该如何解决?

1 个答案:

答案 0 :(得分:0)

假设您要支持的最低版本确实是4.4,那么正如您已经发现的那样,BackgroundTint不适用。您需要为此使用可绘制资源。如果您希望按钮根据按钮的状态进行更改,请使用StateListDrawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
    android:drawable="@[package:]drawable/drawable_resource"
    android:state_pressed=["true" | "false"]
    android:state_focused=["true" | "false"]
    android:state_hovered=["true" | "false"]
    android:state_selected=["true" | "false"]
    android:state_checkable=["true" | "false"]
    android:state_checked=["true" | "false"]
    android:state_enabled=["true" | "false"]
    android:state_activated=["true" | "false"]
    android:state_window_focused=["true" | "false"] />
</selector>

否则,您可以这样:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
   <stroke android:width="2px" android:color="@android:color/white" />
   <solid android:color="@android:color/red" />
</shape>

你将它放在res / drawable文件夹下并像这样引用它:

android:background="@drawable/whateveryounamedyourdrawable"