Drawable资源之shape drawable
来源:互联网 发布:sql 查询前10条数据 编辑:程序博客网 时间:2024/04/29 08:53
用来在XML中定义shape。
文件位置:
res/drawable/filename.xml
这个文件名作为资源ID使用。
编译后的资源类型:
资源指向GradientDrawable。
资源引用方式:
在Java中,R.drawable.filename
在XML中,@[package:]drawable/filename
语法:
<?xml version="1.0"encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" |"line" | "ring"] > <corners android:radius="integer" android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" /> <gradient android:angle="integer" android:centerX="integer" android:centerY="integer" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" |"radial" | "sweep"] android:useLevel=["true" |"false"] /> <padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer"/> <size android:width="integer" android:height="integer"/> <solid android:color="color" /> <stroke android:width="integer" android:color="color" android:dashWidth="integer" android:dashGap="integer"/></shape>
元素:
<shape>
这个shape drawable。必须作为根元素。
属性:
xmlns:android
字符串。必须指定。定义这个XML的namespace,必须是
“http://schemas.android.com/apk/res/android”
android:shape
关键字。定义了shape的类型。可用的值如下:
Value
Description
“rectangle”
将矩形填充到这个容器视图,默认值。
“oval”
将椭圆填充到这个容器中。
“line”
铺满这个容器视图的一条横线。这个外观需要<stroke>元素来定义线的宽度。
“ring”
环形。
只有当android:shape=”ring”时,下面属性才会被使用:
android:innerRadius
Dimension。内部环(中心点)的半径,dimension值或dimensionresource。
android:innerRadiusRatio
Float。内部环的半径,占环宽度的比例。例如,如果android:innerRadiusRatio=”5”,那么内部半径就等于环的宽度除以5。这个值由android:innerRadius重写,默认值是9。
android:thickness
Dimension。环的厚度,dimension值或dimensionresource。
android:thicknessRatio
Float。环的厚度,占环宽度的笔录。例如,如果android:thicknessRatio=”2”,那么这个厚度就等于环宽度除以2。值被android:innerRadius重写,默认为3。
android:useLevel
布尔值。如果这用作LevelListDrawable则为true。一般情况这项应该为”false”,否则你要的形状可能不会出现。
<corners>
为这个shape创建圆角。只有当形状为矩形时才能使用。
属性:
android:radius
Dimension。所有角的半径,类型为dimension值或dimension resource。对于每个角可以通过下面的属性进行重写。
android:topLeftRadius
Dimension。左上角的半径,类型为dimension值或dimensionresource。
android:topRightRadius
Dimension。右上角的半径,类型为dimension值或dimensionresource。
android:bottomLeftRadius
Dimension。左下角的半径,类型为dimension值或dimensionresource。
android:bottomRightRadius
Dimension。右下角的半径,类型为dimension值或dimensionresource。
注意:每个角(最初)必须提供大于1的半径,否则不会出现圆角。如果你不想将角指定为圆角,应急预案是用android:radius将每个角的半径设为大于1,然后用你想要的真实值再重写每个角,并且在你不想要圆角时将它设为0(“0dp”)。
<gradient>
对这个形状指定渐变色。
属性:
android:angle
Integer。渐变的角度,以度为单位。0为从左到右,90为从下到上。它必须是45的倍数。默认是0。
android:centerX
Float。X方向中心点的位置(0~1.0)。
android:centerY
Float。Y方向中心点的位置(0~1.0)。
android:centerColor
Color。来自开始和结束颜色之间的可选颜色,16进制数或color resource。
android:endColor
Color。结束时的颜色,16进制数或colorresource。
android:gradientRadius
Float。渐变半径。只有当android:type="radial"时才使用。
android:startColor
Color。开始时的颜色,16进制数或colorresource。
android:type
关键字。应用的渐变模式的类型,可用的值有:
Value
Description
“linear”
线性渐变,默认值。
“radial”
径向渐变。开始颜色为中心颜色。
“sweep”
扫线渐变。
android:useLevel
Boolean。如果这用作LevelListDrawable时此项为true。
<padding>
填充应用的容器视图(这会填充视图的内容,而不是形状)。
android:left
Dimension。左边距。dimension值或dimensionresource。
android:top
Dimension。上边距。dimension值或dimensionresource。
android:right
Dimension。右边距。dimension值或dimensionresource。
android:bottom
Dimension。下边距。dimension值或dimensionresource。
<size>
形状的尺寸。
属性:
android:height
Dimension。形状的高度。dimension值或dimensionresource。
android:width
Dimension。形状的宽度。dimension值或dimensionresource。
注意:默认情况下,这个shape会等比例计算容器视图的尺寸来适应设置的尺寸。当你在ImageView中使用shape时,你能通过设置android:scaleType=”center”来限制计算类型。
<solid>
填充到shape的颜色。
属性:
android:color
Color。应用到shape的颜色。十六进制或colorresource。
<stroke>
这个shape的中线。
属性:
android:width
Dimension。线条的厚度,dimension值或dimensionresource。
android:color
Color。线条的颜色,十六进制或colorresource。
android:dashGap
Dimension。线条破折号之间的距离,dimension值或dimensionresource。只有当android:dashWidth设置后才可用。
android:dashWidth
Dimension。每条破折线的尺寸,dimension值或dimensionresource。只有设置了android:dashGap后才可用。
例子:
保存在res/drawable/ gradient_box.xml中的XML:
<?xml version="1.0"encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /></shape>
在布局XML中将这个shape drawable应用到视图上:
<TextView android:background="@drawable/gradient_box" android:layout_height="wrap_content" android:layout_width="wrap_content" />
下方是通过代码获取shape drawable并将它应用到视图上:
Resources res = getResources();Drawable shape = res.getDrawable(R.drawable.gradient_box); TextView tv =(TextView)findViewByID(R.id.textview);tv.setBackground(shape);
SEE ALSO:
ShapeDrawable。
- Drawable资源之shape drawable
- Drawable之Shape drawable
- Drawable资源(包含shape)
- drawable自定义图形资源之shape属性
- Drawable简介之-------shape
- Drawable资源之Transition Drawable
- Drawable资源--Shape的使用
- Android 资源之drawable下shape的使用...
- Android资源知识(二)之Shape Drawable的使用
- Drawable Shape
- Shape Drawable
- Shape Drawable
- android之drawable资源
- Android之Drawable资源
- Android中drawable使用Shape资源
- Android Studio 创建Drawable资源Shape文件
- Android Drawable Resources 之 Shape Drawable 使用详解
- Android xml 效果之 Shape Drawable
- 关于android源码中的APP编译时引用隐藏的API出现的问题
- PL/SQL报错:“ora-12154 TNS 无法处理服务名” 的解决办法
- struts.xml配置详解
- 开源C++库
- 霸气,友情,邓超+羽泉。
- Drawable资源之shape drawable
- 关闭word 2010时每次都提示:所做更改会影响共用模板Normal.dotm
- HDU4747 2013 ACM/ICPC Asia Regional Hangzhou Online Mex(线段树)
- python中with的用法
- C++静态类成员
- u-boot启动过程
- JdbcTemplate与事务
- iOS开发学习大纲---请注意版权转发注明出处,请勿手贱
- C++ Timer定时器