用shape画虚线
来源:互联网 发布:动漫网站源码整套 编辑:程序博客网 时间:2024/05/22 13:18
用shape画虚线
layout.xml定义
<View android:layout_width="fill_parent" android:layout_height="4dp" android:layerType="software" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@drawable/line_gap" />
shape.xml定义
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <stroke android:dashGap="6dp" android:dashWidth="6dp" android:width="2dp" android:color="#5000" /> </shape>
注意事项:
- layout.xml中layout_height值一定要大于shape.xml中width值,否则无线条显示;最终线条粗细由 android:width=”2dp”决定。
- android 4.0以后,虚线显示为实线,需设置layout.xml中属性android:layerType=”software”;或者在代码中设置view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
- 对于高版本虚线显示为实线,也可在activity中把硬件加速的功能关掉就可以了android:hardwareAccelerated=”false”,未验证。
以下是shape的其他属性
先看下面的代码:
<shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF" android:angle="270" /> <!-- 描边 --> <stroke android:width="2dp" android:color="#dcdcdc" /> <!-- 圆角 --> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape>
solid:实心,就是填充的意思
android:color指定填充的颜色gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type=”linear”,即线性渐变,可以指定渐变为径向渐变,android:type=”radial”,径向渐变需要指定半径android:gradientRadius=”50”。stroke:描边
android:width=”2dp” 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth=”5dp”
android:dashGap=”3dp”
其中android:dashWidth表示’-‘这样一个横线的宽度,android:dashGap表示之间隔开的距离。corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners android:topRightRadius="20dp" 右上角 android:bottomLeftRadius="20dp" 右下角 android:topLeftRadius="1dp" 左上角 android:bottomRightRadius="0dp" 左下角 />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。padding:间隔
这个就不用多说了,XML布局文件中经常用到。具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <!-- 渐变 --> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF" android:type="radial" android:gradientRadius="50" /> <!-- 描边 --> <stroke android:width="2dp" android:color="#dcdcdc" android:dashWidth="5dp" android:dashGap="3dp" /> <!-- 圆角 --> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true" > <shape> <gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7" android:angle="270" /> <stroke android:width="2dp" android:color="#dcdcdc" /> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <solid android:color="#ff9d77"/> <stroke android:width="2dp" android:color="#fad3cf" /> <corners android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="0dp" android:bottomRightRadius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector>
- 用shape画虚线
- android用shape画虚线
- shape 画虚线
- Android shape 画 虚线
- shape画虚线
- 使用shape画虚线
- 利用shape画虚线
- Android—shape画虚线
- Android利用shape画虚线
- android利用shape画虚线
- android 使用shape 画虚线
- Android利用shape画虚线
- android用shape画虚线,怎么也不显示
- android用shape画虚线时,怎么也不显示
- android用shape画虚线,怎么也不显示
- Android通过用代码画虚线椭圆边框背景来学习一下shape的用法
- Android通过用代码画虚线椭圆边框背景来学习一下shape的用法
- Android虚线分割Shape
- goquery使用
- 【转】回答的智慧
- 1.Python深入_对象的属性
- Linux下的I/O
- Spring DI 注解
- 用shape画虚线
- 《Web前端工程师修炼之道》学习笔记
- hive,spark的远程调试设置
- 3.如何仅用递归函数和栈操作逆序一个栈
- 安卓控件使用系列29:TabHost卡片的使用方法2不继承TabActivity、TabHost控件、一个布局文件
- Git部分命令
- java线程池学习(三) —— ThreadPoolExecutor
- 【C++】c++String类浅拷贝、深拷贝
- 【软考】——排序