Android Drawable中layer-list中的图片异常缩放问题

  • Post author:
  • Post category:其他




需求

在这里插入图片描述

最近需要做这样一个默认地址的按钮,实现的方式有很多种。但是强迫症的我肯定会买弄一下,其实是想尽自己所学用尽可能好的方式来实现,所以选择使用不含图片的手撸

layer-list



CheckBox

来实现。然而,却出现了这样一种情况:

在Android Studio上显示正常,然而在真机上却出现显示异常问题。



分析与设计

  1. 这样的

    1



    0

    型按钮首先想到的是

    CheckBox

    ,多选一的则是

    AudioGroup + AudioButton

    ;
  2. 这样的按钮样式也是比较常见的,所以应该制定一个

    Style

    ;


  3. CheckoutBox



    Style

    设置为定制的

    Style

    ;



问题

使用平常的

layer-list

写法会导致

CheckoutBox

的图标显示异常,显示异常的原因是部分机型以及系统为

API 23

以下时,处于

layer-list

中的

<item/>

标签的

android:width



android:height

属性并不能发挥作用。需要通过

<item/>



android:left



android:right



android:top



android:bottom

以及内部的

drawable



size

来控制,各个

<item/>

的实际大小。

需要说明的是:

  • 第一个

    <item/>



    size

    决定了

    layer-list

    的大小。

  • item



    android:left



    android:right



    android:top



    android:bottom

    可以视为当前

    item



    margin



解决

  1. 被选中状态下的Drawable
//: drawable/icon_choose.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <size android:width="20dp" android:height="20dp" />
            <corners android:radius="10dp" />
            <!-- 未选中时,此处的color设为@color/gray即可-->
            <solid android:color="@color/base_red_4" />



版权声明:本文为weixin_36570478原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。