android shape corners 设置无效的解决

如果要分别设置上下左右的圆角

如下面的shape

  <shape
            android:padding="10dp"
            android:shape="rectangle" >

            <!-- 实心 -->
            <solid android:color="@color/white" />
            <!-- 圆角 -->
<!--             <corners android:radius="@dimen/switch_button_inside_radius" /> -->

            <corners android:topRightRadius="@dimen/switch_button_inside_radius" />
            <corners android:bottomRightRadius="@dimen/switch_button_inside_radius" />
        </shape>

这样设置是没效果的,这是api的bug 


<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape
            android:padding="10dp"
            android:shape="rectangle" >

            <!-- 实心 -->
            <solid android:color="@color/white" />
            <!-- 圆角 -->
            <corners android:radius="@dimen/switch_button_inside_radius" />

            <!-- <corners android:topRightRadius="@dimen/switch_button_inside_radius" /> -->
            <!-- <corners android:bottomRightRadius="@dimen/switch_button_inside_radius" /> -->
        </shape>
    </item>
    <item android:right="@dimen/switch_button_inside_radius">
        <shape android:shape="rectangle" >
            <solid android:color="@color/white" />
        </shape>
    </item>

</layer-list>


解决的方法是弄两层,后面那层用<corners android:radius="@dimen/switch_button_inside_radius" />画个4个角都是圆角的图,然后再在左边画个矩形把左边的圆角给盖住,

效果图:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值