我已经为AppCompatButton创建了自定义可绘制对象,对于API级别23及以上的版本,它可以完美地工作。
这是自定义可绘制对象的代码:
使用的可绘制对象是SVG,高度和宽度均为24dp。
在API 23+上的外观如下所示: 但是,在API级别21上,同样的东西看起来很糟糕。
在可绘制的图像中,图像被拉伸到完整的宽度。 尝试删除动画,但结果仍然相同。
不确定我做错了什么或者遗漏了什么。 似乎我正在使用一些仅在API 23及以上才有的属性,但不确定是哪一个。
这是自定义可绘制对象的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="@android:integer/config_shortAnimTime" android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:drawable="@drawable/background_radio_checked" android:state_checked="true" />
<item android:drawable="@drawable/background_radio_unchecked" android:state_checked="false" />
</selector>
背景单选框已选中 -
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="-8dp"
android:right="-8dp"
android:top="-8dp">
<shape>
<solid android:color="#FFF1EEFF" />
<stroke
android:width="1dp"
android:color="@color/color_ask_question" />
</shape>
</item>
<item
android:bottom="@dimen/screen_margin_half"
android:drawable="@drawable/ic_add_filled_24dp"
android:gravity="start|center_vertical"
android:left="@dimen/screen_margin_half_plus_four"
android:right="@dimen/screen_margin_half"
android:top="@dimen/screen_margin_half" />
</layer-list>
background_radio_unchecked -
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/color_employer_divider" />
<solid android:color="#F2F2F2" />
<corners android:topLeftRadius="@dimen/screen_margin_half_half_half" />
</shape>
</item>
<item
android:bottom="@dimen/screen_margin_half"
android:drawable="@drawable/ic_add_empty_24dp"
android:gravity="start|center_vertical"
android:left="@dimen/screen_margin_half_plus_four"
android:right="@dimen/screen_margin_half"
android:top="@dimen/screen_margin_half" />
</layer-list>
使用的可绘制对象是SVG,高度和宽度均为24dp。
在API 23+上的外观如下所示: 但是,在API级别21上,同样的东西看起来很糟糕。
在可绘制的图像中,图像被拉伸到完整的宽度。 尝试删除动画,但结果仍然相同。
不确定我做错了什么或者遗漏了什么。 似乎我正在使用一些仅在API 23及以上才有的属性,但不确定是哪一个。