line设置虚线为什么就不显示呢

android shape中的line可以用来画分割线,有时分割线需要设成虚线形式,比如这种

line设置虚线为什么就不显示呢_第1张图片
可点击图片查看大图

于是我们去网上查资料,大部分都这样说:



    
    
    
    

这个是没问题的,其中:

  • 只能画水平线,画不了竖线;
  • 线的高度是通过strokeandroid:width属性设置的;
  • sizeandroid:height属性定义的是整个形状区域的高度;
  • ** sizeheight必须大于strokewidth,否则,线无法显示; **
  • 线在整个形状区域中是居中显示的;
  • 线左右两边会留有空白间距,线越粗,空白越大;
  • 引用虚线的view需要添加属性android:layerType,值设为software,否则显示不了虚线。

很多人不注意,容易掉进第四条和最后一条的坑里,sizeheight相当于画布,stokewidth相当于画笔,画布的尺寸小于等于画笔的尺寸都不得行。最后一条也很重要,不过只要大家搜索最新的资料一般都会提示注意,android中大坑不犯,小坑不断,多小心谨慎为好。
当然这些都设置好了,也不一定能显示,因为还有一道坑要踩,那就是在布局里使用的时候,比如,我犯的这个错误:

```
乍一看没什么问题,该设置的都设置了,但实际上就是不显示,一开始以为是要开启硬件加速,但是试了之后还是不行,最后仔细看才发现还是高度的问题,就是刚才虚线的`stoke`的`width`为1dp,但这里`android:layout_height="1dp" `就回到刚才的问题了,布局中的高度限制了drawable的高度,更严格上讲是限制了drawable中“画布”的高度,所以,可想而知了。

---------
这篇主要记述自己踩的坑,加深一下记忆,省的以后忘了,免得下次遇到这种问题又得重搞。



你可能感兴趣的:(line设置虚线为什么就不显示呢)