corners边框_安卓中设置(shape)圆角背景和边框(stroke)相关的问题

最近开发的项目中使用的圆角背景和边框比较多,基本都是使用shape文件和.9图片实现的。但在实现的过程中也是会出现一些小问题,这篇随笔会总结下来其中遇到的问题。

一,圆角大小不一致

1,四周圆角都为10dp 的shape设置

android:shape="rectangle">

android:bottomLeftRadius="@dimen/s_10dp"

android:bottomRightRadius="@dimen/s_10dp"

android:topLeftRadius="@dimen/s_10dp"

android:topRightRadius="@dimen/s_10dp" />

四周圆角一样的效果.png

2,四周圆角左右下方为10dp,左上方为30dp,右上方为20dp 的shape设置

android:shape="rectangle">

android:bottomLeftRadius="@dimen/s_10dp"

android:bottomRightRadius="@dimen/s_10dp"

android:topLeftRadius="@dimen/s_30dp"

android:topRightRadius="@dimen/s_20dp" />

四周圆角不一样的效果.png

二,外层父布局和内层子布局同时设置圆角

1,比如最外层布局设置四周圆角都为10dp ,而右下角的(TextView是)设置为30dp ,填充颜色为#4db8ff

外层和内层shape分别如下:

android:shape="rectangle">

android:bottomLeftRadius="@dimen/s_10dp"

android:bottomRightRadius="@dimen/s_10dp"

android:topLeftRadius="@dimen/s_10dp"

android:topRightRadius="@dimen/s_10dp" />

android:shape="rectangle">

android:bottomRightRadius="@dimen/s_30dp" />

外层和内层同时设置圆角但背景颜色不同.png

切记如果外层已经设置了圆角,内层match_parent后,如果背景仅仅设置一个背景颜色的话,会把外层的圆角覆盖掉,效果如下

外层设置圆角后,内层单独设置背景颜色.png

这时候需要给右下角的TexeView单独设置一个bottomRightRadius和外层的圆角保持一致

三,圆角和边框同时存在

项目中如果有多个有相同边框的view拼接在一块,会有重复的边框,造成中间边框变粗,从而影响效果。

可以通过以下代码处理,给右边view的左边框设置为-1dp(绝对值和边框一致),则右边view的左边框不再显示。或者给左边view的右边框设置为-1dp(绝对值和边框一致)亦可。

android:left="-1dp">

android:width="1dp"

android:color="#ff0000" />

android:topRightRadius="10dp"

android:bottomRightRadius="10dp" />

两个有边框的view拼接到一块的中间边框未处理,变粗.png

两个有边框的view拼接到一块的中间边框.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值