我正在尝试更改backgroundTint
中button
的{{1}}。
当我更改它时,我会在android
上看到它,但是当我打开Android Studio
(4.4)时,emulator
没有显示。
但是当我在backgroundTint
上正常更改background
节目时。
此外,显示与emulator
不同的某些button
正在显示
我发现backgroundTint仅在Android 5.1.1上接受,即使在5.0上也没有,我该如何解决?
答案 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"