博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android使用shape stroke描边只保留底部
阅读量:6675 次
发布时间:2019-06-25

本文共 780 字,大约阅读时间需要 2 分钟。

hot3.png

       在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没有分割线的,每个item中间都是1dp宽度的分割线。我一开始是想到LinearLayout中的每个item用shape文件设置一个background,于是写了如下的shape:

       但是看了这个shape,估计大家都能想象出来效果肯定不对,因为上一个item有1dp的底边,下一个item也有1dp的底边,这样item之间的分割线就有2dp了,很难看,也不是我们要的效果。如下图效果所示:

       所以要解决的问题就是,如何只保留底边的stroke呢。经过一番修改实验,使用layer-list可以解决这个问题,很简单,如下代码所示:

       关键注意看<item>标签的属性,把top、right、left设置成了-2dp,而shape stroke的宽度只有1dp,这样上右左边线都没了,只有底边会保留。(可能有人会问为什么不把top、right、left设置成-1dp,我也试过了,貌似是stroke的时候,自动会在描边的外部再多1dp的margin,仔细看上图也能看出来,所以这里要多设置1dp才能完全去除对应边上的stroke。你可以自己去试试)

       最终效果如下图所示:

       最后一个item的background就不设置就OK,实际运行效果也完全一样!这样就大功告成了!

转载于:https://my.oschina.net/yolinfeng/blog/470407

你可能感兴趣的文章
WHID注入器:在无线环境下实现HID攻击的最新利器
查看>>
智能制造下徐工开启三大改造
查看>>
SOA减低成本提升效率的最有效的思想方法
查看>>
解读:云计算产业“钱”景
查看>>
思杰投资Vyatta 加强云计算基础设施
查看>>
React Native触摸事件处理详解
查看>>
运营商发力大数据,实现流量经营向大数据运营的创新转型
查看>>
大数据这么火,用途到底在哪?
查看>>
高温桑拿天如何让机房降温
查看>>
【博文推荐】如何做好大型数据中心的运维
查看>>
【最佳实践】如何使用云监控+日志服务快速完成故障发现和故障定位
查看>>
Windows 10更新车祸现场 老司机又要飙车了
查看>>
浪潮NF5568M4落地猿题库 让机器老师更智能
查看>>
Javascript设计模式理论与实战:桥接模式
查看>>
JAVA语法糖“+”运算符
查看>>
金融安全资讯精选 2017年第三期:互金第三方监管机制正在酝酿,催收平台信息泄露需警惕...
查看>>
第三次延迟披露财报?东芝:暂无计划
查看>>
poj2001 trie
查看>>
解析:13亿美元的莱迪思半导体拟收购案背后,仅仅是对FPGA技术的渴望?
查看>>
印度计划在海得拉巴建设最大的数据中心
查看>>