Android用shape画虚线不显示问题

<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="line" >  
    <stroke  
        android:dashGap="3dp"  
        android:dashWidth="6dp"  
        android:width="1dp"  
        android:color="#63a219" />  
    <!-- 虚线的高度 -->  
    <size android:height="1dp" />  
</shape>  

破折线的宽度为dashWith,破折线之间的空隙宽度为dashGap,当dashGap=0dp时,为实线

从3.0开始,安卓关闭了硬件加速功能。所以4.0以上设备虚线会变实线

1、在 AndroidManifest.xml中把硬件加速的功能关掉就可以了
 android:hardwareAccelerated="false"

2、代码中可以添加:
line.setLayerType(View.LAYER_TYPE_SOFTWARE, null);  

3、xml中可以添加:
android:layerType="software"  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,686评论 25 708
  • Android中提供了shape形状给我们使用,我们可以通过shape画出虚线、圆角、渐变等多种效果,而且,sha...
    张文文同学阅读 1,254评论 1 8
  • 文中内容主要是介绍如何通过拖拽模式实现view界面,所以相关属性请自行打开text模式查看 本文基于https:/...
    CnPeng阅读 14,822评论 1 7
  • Android中提供了shape形状给我们使用,可以通过shape画出虚线、圆角、渐变等多种效果,而且,shape...
    OzanShareing阅读 1,930评论 0 1
  • 昨天把《走错路》发给了老公。一如既往,老公没有一个字的回复。 临睡前,忍不住给他发微信:“老公,我很想收到你的反馈...
    真冉阅读 294评论 4 2