Android 适用于API 21/22及以下版本的单选按钮断开的自定义绘图
我已经为AppCompatButton创建了定制的可绘制按钮,它在API级别23及更高级别上运行得非常好 这是定制的Android 适用于API 21/22及以下版本的单选按钮断开的自定义绘图,android,xml,android-studio,android-layout,Android,Xml,Android Studio,Android Layout,我已经为AppCompatButton创建了定制的可绘制按钮,它在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:
<?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>
背景\u无线电\u检查-
<?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>
<?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>
背景\u收音机\u未选中-
<?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>
<?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上看起来很可怕
drawable中使用的图像延伸至全宽。
尝试删除动画,但结果仍然相同
不知道我做错了什么或错过了什么。
似乎我使用的某些属性不仅在API 23及以上版本中可用,而且不确定是哪一个。我将自行回答,希望它能帮助他人 我将这个可绘制的设置为我的radiobutton的背景,并在button属性中传递“@null”
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_radio_button_backgorund"
android:button="@null"
android:checked="true" />
这不起作用,所以我为按钮和背景创建了两个独立的自定义绘图
对于自定义可绘制的背景,我只使用了带有边框、背景色、半径等的形状,但没有图标。对于自定义可绘制按钮,我使用了图标。
在后台和按钮中分配这两个自定义绘图选项,可以使事情在棒棒糖设备和更高版本中都能正常工作
<android.support.v7.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_radio_background"
android:button="@drawable/custom_radio_button"
android:checked="true" />
-----------可自定义绘制背景-----------
背景\u收音机\u已检查\u背景-
<?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="#EBFFF7" />
<stroke
android:width="1dp"
android:color="#118F5D" />
</shape>
</item>
</layer-list>
<?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:topRightRadius="@dimen/screen_margin_half_half_half" />
</shape>
</item>
</layer-list>
背景\u收音机\u未选中\u背景-
<?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="#EBFFF7" />
<stroke
android:width="1dp"
android:color="#118F5D" />
</shape>
</item>
</layer-list>
<?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:topRightRadius="@dimen/screen_margin_half_half_half" />
</shape>
</item>
</layer-list>
-----------定制可拉伸按钮-----------
背景\单选\选中\按钮-
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="@dimen/screen_margin_half"
android:drawable="@drawable/ic_poll_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>
背景\单选\未选中\按钮-
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="@dimen/screen_margin_half"
android:drawable="@drawable/ic_poll_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>
我仍然不知道为什么创建一个既有图标又有边框/背景色的绘图板不能与棒棒糖设备一起使用
欢迎对此解决方案提出建议和更正 你能用PNG检查一下吗?也用PNG检查一下,结果相同:(