android用shape画虚线,怎么也不显示



一直以为android的shape能画直线,虚线,矩形,圆形等,画直线也就算了,用一个view设一下高度和颜色,就可以出来一条直线了。所以说这个对我来说经常不用,圆形是可以,看看我应用里的消息提示框都是这样生成的,好了,这个不存在问题,今天想要做是一条虚线,什么也不说了,直接上虚线的代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="line">
     <!-- 显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线 -->
   <stroke android:width="1dp" android:color="#D5D5D5"
             android:dashWidth="2dp" android:dashGap="3dp" />
             <!-- 虚线的高度 -->
     <size android:height="2dp" />
</shape> 

解释的好完美,真要不是不自己试,估计一辈子都会相信这是真的了,结果是放到手机里,从来没有出现过什么线条,对于像我一样追求完美的人来说,自然不会放过这一个细节,在网上找了大半天,有的小伙伴们也遇到了,并且也解决了,可是把他们的方法拿过来后,都一个也不好使,实际情况是还是不能显示,总结一下小伙伴们的解决方法吧

1.从android3.0开始,安卓关闭了硬件加速功能,所以就不能显示了,所以就是在 AndroidManifest.xml,或者是在activity中把硬件加速的功能关掉就可以了android:hardwareAccelerated="false"或者是view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

2.一个小伙伴的翻译,说什么height要大于dashWidth才能显示。

我都按他们的方法试了,根本都不行,

所以要想真正的实现还是老老实实的自己去画一条虚线吧。

时间: 2024-10-04 18:37:24

android用shape画虚线,怎么也不显示的相关文章

android 用代码画虚线边框背景

               1.虚线画效果,可以使用Android中的xml来做. 2.直接上代码: <RelativeLayout android:id="@+id/coupon_popup" android:layout_width="320dp" android:layout_height="200dp" android:layout_margin="20dp" android:gravity="cen

android 用代码画虚线边框背景(转)

1.虚线画效果,可以使用Android中的xml来做. 2.直接上代码: <RelativeLayout android:id="@+id/coupon_popup" android:layout_width="320dp" android:layout_height="200dp" android:layout_margin="20dp" android:gravity="center_vertical&qu

&quot;Android使用Shape绘制虚线,在4.0以上的手机显示实线&quot;解决方案

问题描述: 用以下代码绘制虚线: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <!--显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap

android 随手记-画虚线

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 填充颜色 --> <solid android:color="#00000000">&l

android画虚线的自定义VIew

package com.yesway.ycarplus.view; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import and

Android通过用代码画虚线椭圆边框背景来学习一下shape的用法

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,shape可以绘制矩形环形以及椭圆,所以只需要用椭圆即可,在使用的时候将控件比如imageview或textview的高宽设置成一样就是正圆,solid表示远的填充色,stroke则代表远的边框线,所以两者结合可以实现带边缘的圆,当然也可以直接加上size控制高宽.那么我首先带你们了解一下Shape下有哪些标签,并且都代表什么意思: shape属性: rectangle:矩形 oval:椭圆 line:线,需要

android 画虚线、实线,画圆角矩形,一半圆角

1.画虚线,实线: 建立dotted_line_gray.xml文件放在drawable文件夹下面. android:shape="line" 可以修改你想要的形状 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=&quo

Android 使用shape来画线

注意:Android3.0以上系统开始支持硬件加速特性hardwareAccelerated,默认是启用的.当你的某个activity用到了“虚线”效果的时候,必须要设置AndroidManifest文件中那个activity的硬件加速属性为:Android:hardwareAccelerated="false",否则是不会显示”虚线“效果的.具体原因也不是很清楚. 利用shape来画line,很简单,我很快就能写出一个line类型的shape文件,然后设置到一个view的backgr

android 画虚线

用到的工具类: DashPathEffect android中对该类的说明如下: 翻译一下就是: 第一个参数intervals数组必须是偶数个元素(个数>=2),偶数下标代表实线,奇数下标代表空白长度 第二个参数phase:向左偏移量(偏移量=phase mod (intervals数组各项之和), 即取余运算) 注意:只有当Paint的style设置为STROKE或者FILL_AND_STROKE时才能绘制出虚线效果,如果Paint的style设置为FILL时是不会起作用的. /** * Th