【发布时间】:2015-06-14 04:59:38
【问题描述】:
我有一个按钮,其背景设置为可绘制选择器。
button_sign_in_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_sign_in_background_selected" android:state_focused="true" />
<item android:drawable="@drawable/button_sign_in_background_selected" android:state_pressed="true" />
<item android:drawable="@drawable/button_sign_in_background_selected" android:state_selected="true" />
<item android:drawable="@drawable/button_sign_in_background_normal" />
</selector>
button_sign_in_background_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:visible="true">
<corners android:radius="@dimen/abc_control_corner_material" />
<solid android:color="@color/color_primary" />
</shape>
button_sign_background_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material" />
<solid android:color="@color/color_primary_dark" />
</shape>
我在两种不同的设备上进行了测试,一种使用 API 21,另一种是 API 10。背景button_sign_in_background.xml 在 API 10 中无法显示,但在 API 21 设备中可以使用。
如果我直接在button_sign_in_background.xml 中使用颜色,如下所示,两种设备都可以工作。但这不是我需要的效果,我想要的是按钮周围有一个小半径的角。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_primary_dark" android:state_focused="true" />
<item android:drawable="@color/color_primary_dark" android:state_pressed="true" />
<item android:drawable="@color/color_primary_dark" android:state_selected="true" />
<item android:drawable="@color/color_primary" />
</selector>
这是旧安卓设备的兼容性问题吗?
我该如何解决?欢迎任何形式的评论和回答。
【问题讨论】:
标签: android xml android-drawable android-compatibility