自定义控件shape详解
来源:互联网 发布:网络销售什么产品好 编辑:程序博客网 时间:2024/06/08 14:13
[TOC]
android开发中需要使用自定义资源文件,shape文件可以做成任意形状经常用作背景色。使用background属性设置
在AS中可以在drawable文件下右键新建resource file 然后在文件内将标题改为shape
形状
shape属性指定基本形状,允许的值有:rectangle(矩形),oval(椭圆),line(线条), ring(环)。默认的值是矩形,下面的代码定义了一个矩形:
<?xml version="1.0" encoding="utf-8"?><shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android" ></shape>
gradient
设置渐变
startcolor、centercolor、endcolor设置渐变的起止色,即允许设置两次渐变。
angle设置渐变的角度,仅当渐变类型为线性渐变时有效。默认0值为水平向右,其他角度以逆时针旋转为准,例如设置为90则是自下而上,设置为270自上而下,以此类推。注意:必须是45的倍数。type设置渐变类型,默认是linear(线性渐变),如果设置为radial(放射/径向渐变),则必须同时设置gradientRadius属性,该属性指定渐变半径,注意:这个半径并不是Dimension,不接受dp等单位,只能设置数字。此外还可以设置一个比较有意思的方式:sweep(扫描渐变)。三种渐变方式的效果见下图。
centerX、centerY两个属性用于设置渐变的中心点位置,仅当渐变类型为放射渐变时有效,类型为分数或小数,不接受Dimension。默认值是0.5,有效值是0.0~1.0,超出该范围后会看不出渐变效果。
useLevel属性通常不使用。该属性用于指定是否将该shape当成一个LevelListDrawable来使用,默认值为false。
下面的代码定义了一个线性的上下渐变:
solid设置纯色填充
这个元素本身没什么好说的,既然是纯色填充,只有color一个属性。
注意:如果同一份文件同时指定渐变和纯色填充,则顺序在后面的会覆盖掉前面的设置!
size指定尺寸
使用width、height分别设置宽高,类型为Dimension。
注意:Shape文件即使指定了size,默认情况下在使用时也会缩放到其容器的大小。如果在ImageView中使用,可以使用android:scaleType进行缩放的限制。
stroke描边
当定义的形状为line(线条)时,该属性为必选项,设置线条的样式。当形状为其他形状时,该元素起描边的作用。
width指定边框的宽度(Dimension),color指定边框颜色,只接受color类型。
我们还可以设置虚线边框:使用dashGap设置虚线之间的间隔,dashWidth设置每根虚线’-‘的长度(为什么Google不把这个叫做Length?我也不知道)。仅当这两个属性都设置时虚线效果才生效。
下面的代码定义了一个蓝色虚线边框:
<stroke android:color="#0000FF" android:width="5dp" android:dashGap="3dp" android:dashWidth="10dp"/>
corners设置圆角
仅当形状为矩形时该元素才生效。topLeftRadius、topRightRadius、bottomLeftRadius、bottomRightRadius四个属性分别设置四个角,radius则统一设置(四个角相同)。下面的代码设置了四个相同的圆角:
padding设置边距
该元素的含义请参照android:layout_paddingLeft等属性。共有四个方向left、right、top、bottom可以设置,但没有提供统一设置的属性。
以上介绍了Shape文件的所有可用元素和属性,但要真正用好shape,还要多写多用才行。如有描述错误或不妥的地方,欢迎各位批评指正。
- 自定义控件shape详解
- Shape自定义图形详解
- Android Shape自定义控件属性
- Shape 自定义控件的形状
- 利用ShapeDrawable自定义控件的shape
- Android 给控件自定义Shape背景
- 用shape、selector自定义样式美化控件
- Android-自定义控件样式之shape
- 自定义Shape
- 自定义shape
- 自定义Shape
- 自定义Shape
- 自定义shape
- 安卓自定义控件(二)BitmapShader、ShapeDrawable、Shape
- WindowsPhone自定义控件详解
- 用户自定义控件详解
- Android 自定义控件详解
- Android 自定义控件 详解
- 分清成员函数,非成员函数和友元函数
- springMVC+spring+Mybatis集成
- Java批量转换文件夹中文件的编码(从gbk到utf8)
- MPAndroidChart之柱状图开发总结
- java设计模式之---动态代理
- 自定义控件shape详解
- LOMO Effect预览界面没有立即完全隐藏
- MVC中重写RoleProvider角色管理
- iOS关于蓝牙连接的简单介绍与使用
- Linux C Socket编程原理及简单实例
- Eclipse里面能执行,但命令行里不能执行class文件
- IDEA 修改背景为图片
- 用Python读红楼梦之——一、词云绘制
- 图片环绕文字