- 浏览: 118468 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
瘾心丶Android:
[color=red][/colo[size=large][/ ...
android捕获Home键的方法 -
j086924:
good share!
android Launcher——ui框架 -
m331006:
a、进入cocos2d-x\testandroid\andro ...
Android cocos2d-x开发(三)之创建Android工程和编译 -
sphway:
为什么在布局文件中加入android:layout_gravi ...
自定义控件---滑动按钮的实现 -
chenshijun0101:
LZ,你能把长按home键显示当前任务实现此功能的源码发给我一 ...
长按home键显示当前任务
Drawable资源(包含shape)
Drawable资源是对图像的一个抽象,你可以通过getDrawable(int)得到并绘制到屏幕上。这里有几种不同类型的Drawable:
Bitmap File
一个Bitmap图像文件(.png、.jpg或.gif)。BitmapDrawable。
Nine-Patch File
一个带有伸缩区域的PNG文件,可以基于content伸缩图片(.9.png)。NinePatchDrawable。
State List
一个XML文件,为不同的状态引用不同的Bitmap图像(例如,当按钮按下时使用不同的图片)。StateListDrawable。
Color
定义在XML中的资源,指定一个矩形(圆角可以有)的颜色。PaintDrawable。
Shape
一个XML文件,定义了一个几何形状,包括颜色和渐变。ShapeDrawable。
AnimationDrawable资源的说明在【Animation资源】文章中。
Bitmap File
基本的Bitmap图像。Android支持几种不同格式的Bitmap文件:.png(最佳)、.jpg(可接受)、.gif(不要)。
注意:Bitmap文件可能会被aapt工具进行无损图像压缩优化。例如,一个真彩色的PNG(不超过256色)可能会被转换成一个带有颜色板的8位PNG。这样做能保证图片质量一样,但减少内存占用。因此,需要了解的是放在这个文件夹下的二进制图像在编译时可能会发生变更。如果你打算以位流方式读取图像来转化成Bitmap的话,可以把它们放到res/raw文件中,在这里,它们不会被优化。
File Location:
res/drawable/filename.png (.png, .jpg, 或.gif)
文件名会被当作资源ID使用。
Complied Resource Datatype:
指向BitmapDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Example:
在res/drawable/myimage.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
下面的代码可以以Drawable方式得到图片:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.myimage);
Nine-Patch File
NinePatch是一种PNG图像,可以定义拉伸区域,当View的content超出图像边界的话,Android会拉伸它。典型用法是把这个图像设置为View的背景,而这个View至少有一个尺寸设置为“wrap_content”,当这个View变大来容纳content时,Nine-Patch图像也会拉伸来匹配View的大小。
File Location:
res/drawable/filename.9.png
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向NinePatchDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Example:
在res/drawable/myninepatch.9.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myninepatch" />
State List
StateListDrawable是定义在XML中的Drawable对象,能根据状态来呈现不同的图像。例如,Button存在多种不同的状态(pressed、focused或other),使用StateListDrawable,你可以为Button的每个状态提供不同的按钮图像。
你可以在XML文件中描述状态列表。在<selector>元素里的每个<item>代表每个图像。每个<item>使用不同的特性来描述使用的时机。
当每次状态改变时,StateList都会从上到下遍历一次,第一个匹配当前状态的item将被使用——选择的过程不是基于“最佳匹配”,只是符合state的最低标准的第一个item。
File Location
Res/drawable/filename.xml
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向StateListDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_active=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
Elements:
<selector>
必须。必须是根元素。可以包含一个或多个<item>元素。
Attributes:
xmlns:android
String。必须。定义XML的命名空间,必须是
“http://schemas.android.com/apk/res/android”。
android:constantSize
Boolean。“true”表示随着状态变化,Drawable的大小保持不变(所有状态中最大的size);“false”表示大小会变化。默认是false。
android:dither
Boolean。“true”表示当Bitmap和屏幕的不是相同的像素设定时支持Bitmap抖动(例如,ARGB 8888的Bitmap和RGB 565的屏幕);“false”表示不支持。默认是“true”。
android:variablePadding
Boolean。“true”表示Drawable的Padding可以变化;“false”表示Padding保持相同(所有状态的最大Padding)。使能这一特征需要在状态变化时处理Layout,一般都不支持。默认值是false。
<item>
定义特定状态的Drawable,通过它的特性指定。必须是<selector>的子元素。
Attributes:
android:drawable
Drawable资源。必须。指向一个Drawable资源。
android:state_pressed
Boolean。“true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。
android:state_focused
Boolean。“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。
android:state_selected
Boolean。“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。
android:state_checkable
Boolean。“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)
android:state_checked
Boolean。“true”表示勾选状态使用;“false”表示非勾选状态使用。
android:state_enabled
Boolean。“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。
android:window_focused
Boolean。“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。
注意:记住一点,StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后(如下面的例子所示)。
Example:
XML文件保存在res/drawable/button.xml。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
Layout XML将这个Drawable应用到一个View上:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/button" />
Color
定义在XML中的color,可以当作Drawable使用,来填充矩形区域(圆角可以有)。这种Drawable的行为很像是颜色填充。
注意:Color Drawable是一种简单的资源,可以使用name特性来引用其值(不再是XML文件的名)。因此,你可以在一个XML文件中的<resources>元素下添加多个Color Drawable。
File Location:
res/drawable/filename.xml
文件名随意。元素的name将会当作资源ID使用。
Complied Resource Datatype:
指向PaintDrawable资源的指针。
Resource Reference:
R.drawable.color_name(Java)
@[package:]drawable/color_name(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="color_name"
>color</drawable>
</resources>
Elements:
<resources>
必须。必须是根节点。
没有特性。
<drawable>
一个color Drawable。其值可以是任何有效的十六进制颜色值或者Color资源。Color值总是以“#”开头,后面紧跟Alpha-Red-Green-Blue信息,格式是:#RGB、#ARGB或者#AARRGGBB。
Attributes:
name
String。必须。Color的名字。这个名字将被当作资源ID使用。
Example:
XML文件保存在res/drawable/color.xml。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="solid_red">#f00</drawable>
<drawable name="solid_blue">#0000ff</drawable>
</resources>
Layout XML将会把这个Color Drawable应用到一个View上:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/solid_blue" />
代码中获取Color Drawable并应用到View上:
Resources res = getResources();
Drawable redDrawable = res.getDrawable(R.drawable.solid_red);
TextView tv = (TextView) findViewByID(R.id.text);
tv.setBackground(redDrawable);
Shape
定义在XML中的几何形状。
File Location:
res/drawable/filename.xml
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向ShapeDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<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:usesLevel=["true" | "false"] />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer"
android:dashGap="integer" />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
</shape>
Elements:
<shape>
必须。必须是根元素。
Attributes:
android:shape
Keyword。定义Shape的类型。有效的值包括:
Value
Desciption
"rectangle"
矩形。默认形状。
"oval"
椭圆。
"line"
水平直线。需要<stroke>元素定义线的宽度。
"ring"
环形。
接下来的特性只能在android:shape=”ring”时使用:
android:innerRadius
Dimension。内环的半径。
android:innerRadiusRatio
Float。以环的宽度比率来表示内环的半径。例如,如果android:innerRadiusRatio=”5”,内环半径等于环的宽度除以5。这个值可以被android:innerRadius覆盖。默认值是9。
android:thickness
Dimension。环的厚度。
android:thicknessRatio
Float。以环的宽度比率来表示环的厚度。例如,如果android:thicknessRatio=”2”,厚度就等于环的宽度除以2。这个值可以被android:thickness覆盖。默认值是3。
android:useLevel
Boolean。“true”表示可以当作LevelListDrawable使用。一般都为“false”。
<gradient>
为Shape指定渐变色。
Attributes:
android:angle
Integer。渐变色的角度值。0表示从左到右,90表示从下到上。必须是45的倍数,默认是0。
android:centerX
Float。渐变色中心的X相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerY
Float。渐变色中心的Y相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerColor
Color。可选的颜色,出现在start和end颜色之间。
android:endColor
Color。end颜色。
android:gradientRadius
Float。渐变色的半径。当android:type=”radial”时有效。
android:startColor
Color。start颜色。
android:type
Keyword。渐变色的样式。有效值为:
Value
Description
"linear"
线性渐变,默认值。
"radial"
环形渐变。start颜色是处于中间的颜色。
"sweep"
sweep渐变
android:useLevel
Boolean。“true”表示可以当作LevelListDrawable使用。
<solid>
填充shape的单一色。
Attributes:
android:color
Color。这个颜色会应用到shape上。
<stroke>
shape的线形。
Attributes:
android:width
Dimension。线的厚度。
android:color
Color。线的颜色。
android:dashGap
Dimension。间断线间的距离。仅在android:dashWidth设定时有效。
android:dashWidth
Dimension。间断线的大小。仅在android:dashGap设定时有效。
<padding>
内部View元素的边距。
Attributes:
android:left
Dimension。左内边距。
android:top
Dimension。上内边距。
android:right
Dimension。右内边距。
android:bottom
Dimension。下内边距。
<corners>
为shape创建圆角。当shape是一个矩形时有效。
Attributes:
android:radius
Dimension。圆角的半径。会被下面的特性覆盖。
android:topLeftRadius
Dimension。左上圆角半径。
android:topRightRadius
Dimension。右上圆角半径。
android:bottomLeftRadius
Dimension。左下圆角半径。
android:bottomRightRadius
Dimension。右下圆角半径。
Examples:
XML文件保存在res/drawable/gradient_box.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>
Layout XML将被当作ShapeDrawable应用到一个View上:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
代码中也可以获得ShapeDrawable,然后应用到View上:
Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);
TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);
Drawable资源是对图像的一个抽象,你可以通过getDrawable(int)得到并绘制到屏幕上。这里有几种不同类型的Drawable:
Bitmap File
一个Bitmap图像文件(.png、.jpg或.gif)。BitmapDrawable。
Nine-Patch File
一个带有伸缩区域的PNG文件,可以基于content伸缩图片(.9.png)。NinePatchDrawable。
State List
一个XML文件,为不同的状态引用不同的Bitmap图像(例如,当按钮按下时使用不同的图片)。StateListDrawable。
Color
定义在XML中的资源,指定一个矩形(圆角可以有)的颜色。PaintDrawable。
Shape
一个XML文件,定义了一个几何形状,包括颜色和渐变。ShapeDrawable。
AnimationDrawable资源的说明在【Animation资源】文章中。
Bitmap File
基本的Bitmap图像。Android支持几种不同格式的Bitmap文件:.png(最佳)、.jpg(可接受)、.gif(不要)。
注意:Bitmap文件可能会被aapt工具进行无损图像压缩优化。例如,一个真彩色的PNG(不超过256色)可能会被转换成一个带有颜色板的8位PNG。这样做能保证图片质量一样,但减少内存占用。因此,需要了解的是放在这个文件夹下的二进制图像在编译时可能会发生变更。如果你打算以位流方式读取图像来转化成Bitmap的话,可以把它们放到res/raw文件中,在这里,它们不会被优化。
File Location:
res/drawable/filename.png (.png, .jpg, 或.gif)
文件名会被当作资源ID使用。
Complied Resource Datatype:
指向BitmapDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Example:
在res/drawable/myimage.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
下面的代码可以以Drawable方式得到图片:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.myimage);
Nine-Patch File
NinePatch是一种PNG图像,可以定义拉伸区域,当View的content超出图像边界的话,Android会拉伸它。典型用法是把这个图像设置为View的背景,而这个View至少有一个尺寸设置为“wrap_content”,当这个View变大来容纳content时,Nine-Patch图像也会拉伸来匹配View的大小。
File Location:
res/drawable/filename.9.png
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向NinePatchDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Example:
在res/drawable/myninepatch.9.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myninepatch" />
State List
StateListDrawable是定义在XML中的Drawable对象,能根据状态来呈现不同的图像。例如,Button存在多种不同的状态(pressed、focused或other),使用StateListDrawable,你可以为Button的每个状态提供不同的按钮图像。
你可以在XML文件中描述状态列表。在<selector>元素里的每个<item>代表每个图像。每个<item>使用不同的特性来描述使用的时机。
当每次状态改变时,StateList都会从上到下遍历一次,第一个匹配当前状态的item将被使用——选择的过程不是基于“最佳匹配”,只是符合state的最低标准的第一个item。
File Location
Res/drawable/filename.xml
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向StateListDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_active=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
Elements:
<selector>
必须。必须是根元素。可以包含一个或多个<item>元素。
Attributes:
xmlns:android
String。必须。定义XML的命名空间,必须是
“http://schemas.android.com/apk/res/android”。
android:constantSize
Boolean。“true”表示随着状态变化,Drawable的大小保持不变(所有状态中最大的size);“false”表示大小会变化。默认是false。
android:dither
Boolean。“true”表示当Bitmap和屏幕的不是相同的像素设定时支持Bitmap抖动(例如,ARGB 8888的Bitmap和RGB 565的屏幕);“false”表示不支持。默认是“true”。
android:variablePadding
Boolean。“true”表示Drawable的Padding可以变化;“false”表示Padding保持相同(所有状态的最大Padding)。使能这一特征需要在状态变化时处理Layout,一般都不支持。默认值是false。
<item>
定义特定状态的Drawable,通过它的特性指定。必须是<selector>的子元素。
Attributes:
android:drawable
Drawable资源。必须。指向一个Drawable资源。
android:state_pressed
Boolean。“true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。
android:state_focused
Boolean。“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。
android:state_selected
Boolean。“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。
android:state_checkable
Boolean。“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)
android:state_checked
Boolean。“true”表示勾选状态使用;“false”表示非勾选状态使用。
android:state_enabled
Boolean。“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。
android:window_focused
Boolean。“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。
注意:记住一点,StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后(如下面的例子所示)。
Example:
XML文件保存在res/drawable/button.xml。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
Layout XML将这个Drawable应用到一个View上:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/button" />
Color
定义在XML中的color,可以当作Drawable使用,来填充矩形区域(圆角可以有)。这种Drawable的行为很像是颜色填充。
注意:Color Drawable是一种简单的资源,可以使用name特性来引用其值(不再是XML文件的名)。因此,你可以在一个XML文件中的<resources>元素下添加多个Color Drawable。
File Location:
res/drawable/filename.xml
文件名随意。元素的name将会当作资源ID使用。
Complied Resource Datatype:
指向PaintDrawable资源的指针。
Resource Reference:
R.drawable.color_name(Java)
@[package:]drawable/color_name(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="color_name"
>color</drawable>
</resources>
Elements:
<resources>
必须。必须是根节点。
没有特性。
<drawable>
一个color Drawable。其值可以是任何有效的十六进制颜色值或者Color资源。Color值总是以“#”开头,后面紧跟Alpha-Red-Green-Blue信息,格式是:#RGB、#ARGB或者#AARRGGBB。
Attributes:
name
String。必须。Color的名字。这个名字将被当作资源ID使用。
Example:
XML文件保存在res/drawable/color.xml。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="solid_red">#f00</drawable>
<drawable name="solid_blue">#0000ff</drawable>
</resources>
Layout XML将会把这个Color Drawable应用到一个View上:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/solid_blue" />
代码中获取Color Drawable并应用到View上:
Resources res = getResources();
Drawable redDrawable = res.getDrawable(R.drawable.solid_red);
TextView tv = (TextView) findViewByID(R.id.text);
tv.setBackground(redDrawable);
Shape
定义在XML中的几何形状。
File Location:
res/drawable/filename.xml
文件名将被当作资源ID使用。
Complied Resource Datatype:
指向ShapeDrawable的资源指针。
Resource Reference:
R.drawable.filename(Java)
@[package:]drawable/filename(XML)
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<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:usesLevel=["true" | "false"] />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer"
android:dashGap="integer" />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
</shape>
Elements:
<shape>
必须。必须是根元素。
Attributes:
android:shape
Keyword。定义Shape的类型。有效的值包括:
Value
Desciption
"rectangle"
矩形。默认形状。
"oval"
椭圆。
"line"
水平直线。需要<stroke>元素定义线的宽度。
"ring"
环形。
接下来的特性只能在android:shape=”ring”时使用:
android:innerRadius
Dimension。内环的半径。
android:innerRadiusRatio
Float。以环的宽度比率来表示内环的半径。例如,如果android:innerRadiusRatio=”5”,内环半径等于环的宽度除以5。这个值可以被android:innerRadius覆盖。默认值是9。
android:thickness
Dimension。环的厚度。
android:thicknessRatio
Float。以环的宽度比率来表示环的厚度。例如,如果android:thicknessRatio=”2”,厚度就等于环的宽度除以2。这个值可以被android:thickness覆盖。默认值是3。
android:useLevel
Boolean。“true”表示可以当作LevelListDrawable使用。一般都为“false”。
<gradient>
为Shape指定渐变色。
Attributes:
android:angle
Integer。渐变色的角度值。0表示从左到右,90表示从下到上。必须是45的倍数,默认是0。
android:centerX
Float。渐变色中心的X相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerY
Float。渐变色中心的Y相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerColor
Color。可选的颜色,出现在start和end颜色之间。
android:endColor
Color。end颜色。
android:gradientRadius
Float。渐变色的半径。当android:type=”radial”时有效。
android:startColor
Color。start颜色。
android:type
Keyword。渐变色的样式。有效值为:
Value
Description
"linear"
线性渐变,默认值。
"radial"
环形渐变。start颜色是处于中间的颜色。
"sweep"
sweep渐变
android:useLevel
Boolean。“true”表示可以当作LevelListDrawable使用。
<solid>
填充shape的单一色。
Attributes:
android:color
Color。这个颜色会应用到shape上。
<stroke>
shape的线形。
Attributes:
android:width
Dimension。线的厚度。
android:color
Color。线的颜色。
android:dashGap
Dimension。间断线间的距离。仅在android:dashWidth设定时有效。
android:dashWidth
Dimension。间断线的大小。仅在android:dashGap设定时有效。
<padding>
内部View元素的边距。
Attributes:
android:left
Dimension。左内边距。
android:top
Dimension。上内边距。
android:right
Dimension。右内边距。
android:bottom
Dimension。下内边距。
<corners>
为shape创建圆角。当shape是一个矩形时有效。
Attributes:
android:radius
Dimension。圆角的半径。会被下面的特性覆盖。
android:topLeftRadius
Dimension。左上圆角半径。
android:topRightRadius
Dimension。右上圆角半径。
android:bottomLeftRadius
Dimension。左下圆角半径。
android:bottomRightRadius
Dimension。右下圆角半径。
Examples:
XML文件保存在res/drawable/gradient_box.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>
Layout XML将被当作ShapeDrawable应用到一个View上:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
代码中也可以获得ShapeDrawable,然后应用到View上:
Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);
TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);
发表评论
-
Android Service学习之AIDL, Parcelable和远程服务
2012-06-26 19:33 725AIDL的作用 由于每 ... -
Android的系统的Binder机制(一)
2012-06-21 19:11 669Android系统的Binder机制之一—— ... -
Android的系统的Binder机制(一)
2012-06-21 19:11 768Android系统的Binder机制之一—— ... -
android中修改framework层代码后怎样操作才能看到修改后的效果?
2012-03-30 10:24 41011.下面方法适合真机:下载android源码,然后编译你修改的 ... -
Ubuntu下常用的快捷键
2012-03-19 09:10 0最常用 win+n切换背景颜色风格 alt+tab=不用说了 ... -
Android中全屏无标题设置
2012-03-06 10:29 2379方法一:在java代码中实现 //取消标题 ... -
如何通过wifi调试android程序
2012-03-06 09:53 3346android手机居然可以通过wifi进行程序的调试,太好 ... -
长按home键显示当前任务
2012-03-05 10:33 6350公司给我的任务就是怎么长按home键显示当前任务,刚开始我还以 ... -
android捕获Home键的方法
2012-03-05 10:08 2402Level5以上(包含)中,Activity类中有如下方法: ... -
在32位Ubuntu10.04上编译Android2.3
2012-02-18 11:23 01.安装JDK6 对于Android2.3系统,不要安 ... -
自定义控件---滑动按钮的实现
2012-02-11 16:27 2643package cn.flyaudio.android; ... -
滑动按钮
2012-02-10 19:09 737http://blog.csdn.net/luoyuhhy/a ... -
Android 支持多屏幕机制
2012-02-10 09:20 681在Android上进行开发, ... -
Android UI开发专题
2012-02-06 09:36 922Android UI开发专题 (一) ... -
Launcher(一)关于使用Eclipse调试Launcher的完美解决方法
2012-02-02 19:21 1263由于在Android源码中,很多方法、成员、类、包都被打上@h ... -
android Launcher——ui框架
2012-01-31 22:25 1137android Launcher——ui框架 分 ... -
为程序员量身定制的12个目标
2012-01-15 15:01 618ugmbbc发布于 2012-01-15 ... -
Ubuntu Linux中连接Android真机调试
2012-01-14 14:50 1202首先确保用数据线链接后能识别设备,输入:lsusb,可以看 ... -
如何成为一名Android开发高手
2012-01-04 16:42 1873下面是成为一名真正的Android高手必须掌握和遵循的一些准则 ... -
android GestureDetector功能和使用
2011-12-26 15:36 875android为了增加用户体验 ...
相关推荐
在Android应用的资源文件夹res/drawable下,开发者可以通过创建XML文件来定义`shape`对象,以实现自定义的背景、按钮样式等。 `shape`标签通常包含以下几个主要属性: 1. `shape`: 定义形状类型,可以是`rectangle...
在Android开发中,drawable资源是不可或缺的一部分,它主要用于定义图形、形状、背景等视觉元素,还可以用来改变控件的外观。本篇文章将深入探讨如何利用drawable资源来改变Android应用中的控件外观。 首先,...
`Drawable`在Android中扮演着多种角色,包括但不限于图片、背景、按钮状态、选择器等。它们可以通过XML或Java代码进行定义,并且可以在布局文件中作为属性使用,或者在运行时动态加载。在描述中提到的"HelloDrawable...
本篇文章将深入探讨Android中的Drawable资源及其在压缩包"drawable(图片).zip"中的应用。 首先,Drawable是Android系统中用于表示图形对象的接口,它可以是位图(Bitmap)、形状(Shape)、动画(Animation)等。在...
在Android开发中,XML Shape Drawable是一种非常实用的资源类型,它允许开发者通过XML代码来创建图形,如矩形、椭圆、线以及更复杂的形状。这些形状可以用于自定义按钮、背景、图标的外观,提供了丰富的定制选项,...
首先,Shape Drawable主要包含以下几种基本形状: 1. `rectangle`(矩形):最常用的基础形状,可以设置填充色或渐变色。 2. `oval`(圆形):用于创建圆形或者椭圆形。 3. `line`(线):常用于绘制分割线。 4. `...
在Android开发中,Drawable是图形和图像处理的重要组成部分,它涵盖了多种类型的图像资源,如颜色、形状、位图等。本篇文章将深入探讨...同时,合理地管理和复用Drawable资源也有助于减少应用的内存消耗和启动时间。
此外,`drawable`资源也可以用于创建图层列表(`layer-list`),组合多个图形元素为一个单一的资源,或者使用`shape`元素来创建自定义的形状,如矩形、圆角矩形、椭圆等。这对于构建自定义布局和控件的背景非常有用...
为了更好地理解并实践这些Drawable的用法,你可以查看名为"DrawableTest"的压缩包文件,里面可能包含了一些示例代码或资源,供你学习和测试。通过实际操作,你可以更深入地掌握Android中Drawable的各种应用场景。
在这个主题中,我们将深入探讨`drawable`文件的各个方面,包括其类型、用途、如何使用以及在项目中的最佳实践。 首先,`drawable`资源根据其内容可以分为多个子类别: 1. **Bitmap Drawables**:这是最常见的类型...
首先,Drawable是一个抽象的概念,它代表了Android系统中的可绘制对象,包括Bitmap、Shape、LevelList、NinePatch等。而Bitmap则是一种像素级别的图像表示,可以直接操作每个像素的颜色值,适用于内存中进行图像处理...
Android内置了多种`drawable`类型,包括: 1. **ColorDrawable**:最简单的`drawable`类型,代表一个单色绘制区域。 2. **GradientDrawable**:用于实现渐变效果的`drawable`类型。 3. **BitmapDrawable**:用于...
- **Shape Drawable**: 用于创建几何形状,如矩形、圆形、椭圆等,通过`<shape>`元素定义,包含`<solid>`, `<stroke>`, `<padding>`, `<corners>`等子元素来设置填充色、边框、内边距和圆角。 - **Bitmap Drawable...
本教程将通过具体的代码示例,介绍如何在Android中创建自定义的Drawable,包括自定义形状、水印和淡出效果。 1. **自定义形状** Android中的Shape Drawable允许我们创建各种几何形状,如矩形、椭圆、线和路径。要...
在Android开发中,Drawable资源是极其重要的一部分,它包含了各种图形和图像的处理方式,能够被绘制到屏幕上。Drawable不仅仅是简单的图片,而是一种抽象的概念,它涵盖了多种图像表现形式。在Android API中,...
在Android开发中,Drawable是用于表示图形资源的重要类,它涵盖了图像、颜色、形状等多种视觉元素。本资源包“Android高级应用源码-drawable(图片).zip”显然是一个专注于探讨如何在Android应用中高效、灵活地使用...
本文将详细讲解如何在EditText中实现表情输入,并直接绑定Drawable资源文件,使得表情调用更加便捷。 首先,理解Drawable资源在Android中的作用。Drawable是Android图形库的一部分,用于存储和管理各种图形,如位图...
Android开发中的drawable资源是构建用户界面不可或缺的一部分,它们可以是颜色、形状、图像或图层列表等。在传统的Android开发中,我们通常在代码中动态设置drawable或者在XML布局文件中硬编码引用它们。然而,...
在 Android 应用开发过程中,开发者会将使用的资源文件(如图片、布局文件等)放在特定的资源目录中,这些目录包括 `res/drawable/` 目录,用于存放 `Drawable` 类型的资源。当需要使用这些资源时,可以直接通过资源...