标签:
本文将介绍Android中Resource Types的drawable、menu、layout。如需访问官方原文,您可以点击这些链接:
如需了解Android中的其他资源介绍(Animation、Color State List、String、Style),您可以点击这个链接:《Android官方文档之App Resources(中)》。
布局资源用于定义组件的布局UI。
文件目录:
res/layout/filename.xml
引用方式:
In Java: R.layout.filename
In XML: @[package:]layout/filename
语法:
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "fill_parent" | "wrap_content"]
android:layout_width=["dimension" | "fill_parent" | "wrap_content"]
[ViewGroup-specific attributes] >
<View
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "fill_parent" | "wrap_content"]
android:layout_width=["dimension" | "fill_parent" | "wrap_content"]
[View-specific attributes] >
<requestFocus/>
</View>
<ViewGroup >
<View />
</ViewGroup>
<include layout="@layout/layout_resource"/>
</ViewGroup>
根标签可以是 ViewGroup、View、或 <merge>之一。
标签及其属性:
<ViewGroup>:承载其他View的容器。如LinearLayout, RelativeLayout, FrameLayout等。并不是所有的<ViewGroup>都能在布局中直接包含View,比如说AdapterView,它的子View来自于Adapter。
– android:id :资源ID。
– android:layout_height:dp或关键字(wrap_content、match_parent)。不可缺省。
– android:layout_width:dp或关键字(wrap_content、match_parent)。不可缺省。
<requestFocus>:任何View都可以包含这个标签,它表示程序第一次加载时,该View获得焦点,该标签只能在一个布局文件中使用一次。
<include>:引用一个布局。
– layout :不可缺省。引用一个布局资源。
– android:id:资源ID。可覆盖引用布局的根View的ID。
– android:layout_height:可覆盖引用布局的根View的android:layout_height。
– android:layout_width:可覆盖引用布局的根View的android:layout_width。
<merge>:是一个根标签。但并未占用布局树中的节点。使用该标签包含的元素将被直接替换至引用该标签的布局中。
示例:
<!-- res/layout/main_activity.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
引用方式:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
菜单资源为程序提供菜单项。如Options Menu、Context Menu、submenu 等。在Java中通过MenuInflater类中的方法引入菜单资源。
文件目录:
res/menu/filename.xml
引用方式:
In Java: R.menu.filename
In XML: @[package:]menu.filename
语法:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@[+][package:]id/resource_name"
android:title="string"
android:titleCondensed="string"
android:icon="@[package:]drawable/drawable_resource_name"
android:onClick="method name"
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
android:actionLayout="@[package:]layout/layout_resource_name"
android:actionViewClass="class name"
android:actionProviderClass="class name"
android:alphabeticShortcut="string"
android:numericShortcut="string"
android:checkable=["true" | "false"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" />
<group android:id="@[+][package:]id/resource name"
android:checkableBehavior=["none" | "all" | "single"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" >
<item />
</group>
<item >
<menu>
<item />
</menu>
</item>
</menu>
标签及其属性:
<menu>:不可缺省,必须作为菜单资源的根标签。应包含<item>和/或 <group>标签。
– xmlns:android :不可缺省,XML文件的命名空间。必须是:"http://schemas.android.com/apk/res/android"。
<item>:一个菜单项。若包含了<menu>标签,那么该<menu>标签是一个子菜单。 <item>标签必须被包含于<menu>中。
– android:id:资源ID。
– android:title:String类型。菜单项的显示内容。
– android:titleCondensed: String类型。缩短的菜单项的显示内容。当android:title中指定的的内容显示不下时,显示该属性的内容。
– android:icon:drawable资源。菜单项的图标。
– android:onClick:方法名。当菜单项被点击时,调用该方法。必须在activity中定义该方法,且必须使用public修饰符,需要传入一个MenuItem作为唯一参数。
– android:showAsAction:下表中的Value值之一。用于确定如何在标题栏中显示该item项。
| Value | Description |
|---|---|
| ifRoom | 仅当标题栏有空间时显示该item,否则该item项将被隐藏至overflow中 |
| withText | 仅当标题栏有空间时会显示menu的title |
| never | 永不在标题栏中显示该item,而是将该item项隐藏至overflow中 |
| collapseActionView | 这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。 |
-- `android:actionLayout`:layout资源。定制的标题栏布局。
-- `android:actionViewClass`:类名。用于声明在标题栏展示的控件的全限定类名,如`"android.widget.SearchView"`表示将控件`SearchView`展示在标题栏上。
-- `android:actionProviderClass`:类名。用于声明在标题栏展示的菜单项的全限定类名,如`"android.widget.ShareActionProvider"`表示使用控件`ShareActionProvider`作为一个菜单项。
-- `android:alphabeticShortcut`:Char类型。为该item指定字符快捷键。
-- `android:numericShortcut`:Integer类型。为该item指定数字快捷键。
-- `android:checkable`:Boolean类型。`true`表示该item是可勾选的。
-- `android:checked`:Boolean类型。`true`表示item默认是勾选状态。
-- `android:visible`:Boolean类型。`true`表示item默认是可见状态。
-- `android:enabled`:Boolean类型。`true`表示item默认是使能状态。
-- `android:menuCategory`:值为下表中的Value值之一。这些值对应着Menu类中的` CATEGORY_* `字段。表示item的优先级。
| Value | Description |
|---|---|
| container | 该项是容器的一部分(For items that are part of a container.) |
| system | 该项由系统提供 |
| secondary | 该项是由用户提供的二级选项(不常用) |
| alternative | 该项正在显示 |
–android:orderInCategory:Integer类型。该项的重要级别。
<group>:定义一组item项。
– android:id:资源ID。
–android:checkableBehavior:值为下表中的Value值之一。指定该组item的可勾选行为。
| Value | Description | |
|---|---|---|
| none | group中不包含可勾选的item。 | |
| all | 所有item都是可勾选的。(checkbox) | |
| single | 只能单选item。(radiobutton) |
-- `android:visible`:Boolean类型,true表示group可见。
-- `android:enabled`:Boolean类型,true表示group使能。
-- `android:menuCategory`:与`<item>`标签中的 `android:menuCategory`属性相同。
-- `android:orderInCategory`:Integer类型。该项的重要级别。
示例:
<!-- res/menu/example_menu.xml -->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item1"
android:title="@string/item1"
android:icon="@drawable/group_item1_icon"
android:showAsAction="ifRoom|withText"/>
<group android:id="@+id/group">
<item android:id="@+id/group_item1"
android:onClick="onGroupItemClick"
android:title="@string/group_item1"
android:icon="@drawable/group_item1_icon" />
<item android:id="@+id/group_item2"
android:onClick="onGroupItemClick"
android:title="@string/group_item2"
android:icon="@drawable/group_item2_icon" />
</group>
<item android:id="@+id/submenu"
android:title="@string/submenu_title"
android:showAsAction="ifRoom|withText" >
<menu>
<item android:id="@+id/submenu_item1"
android:title="@string/submenu_item1" />
</menu>
</item>
</menu>
在Java代码中引入该menu资源:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example_menu, menu);
return true;
}
public void onGroupItemClick(MenuItem item) {
// One of the group items (using the onClick attribute) was clicked
// The item parameter passed here indicates which item it is
// All other menu item clicks are handled by onOptionsItemSelected()
}
Drawable是一种能够在屏幕上展示的资源,根据不同的展示形式,Drawable可分为如下类型:
Bitmap File:一个位图文件资源,.png、.jpg 、或 .gif格式。对应BitmapDrawable对象。
Nine-Patch File:一种可以在指定方向上拉伸而不会失真的.9.png格式的图片资源。对应NinePatchDrawable对象。
Layer List:一个引用了一组Drawable图片的资源,具有层次顺序,最大标号的drawable在最顶层。对应LayerDrawable对象。
State List:不同状态下可饮用不同drawable资源的drawable。对应StateListDrawable对象。
Level List:管理大量的drawable,并会指定一个最大值。对应LevelListDrawable对象。
Transition Drawable:可以在两个drawable之间淡入淡出切换的drawable。对应TransitionDrawable对象。
Inset Drawable:在一个drawable中插入一个drawable并指定距离。当View的背景小于该View时,使用该类型的drawable。
Clip Drawable:根据当前drawable尺寸剪切另一个drawable。对应ClipDrawable对象。
Scale Drawable:根据当前drawable尺寸缩放另一个drawable。对应ScaleDrawable对象。
Shape Drawable:设定颜色和渐变的drawable。对应ShapeDrawable对象。
Android支持三种位图文件。.png (推荐), .jpg (可接受), .gif (不推荐)。
文件目录:
res/drawable/filename.png (.png, .jpg, or .gif)
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
示例:
<!-- res/drawable/myimage.png -->
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
在Java代码中引入:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.myimage);
一个XML位图文件定义在XML中,可以使用<bitmap>标签将一个drawable包含在<item>中。
文件目录:
res/drawable/filename.xml
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
语法:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable_resource"
android:antialias=["true" | "false"]
android:dither=["true" | "false"]
android:filter=["true" | "false"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:mipMap=["true" | "false"]
android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
标签及其属性:
<bitmap>:
– xmlns:android:命名空间;
– android:src :资源drawable。不可缺省。
– android:antialias:Boolean类型。是否抗锯齿。
– android:dither:Boolean类型。设置图像的像素是否与屏幕的像素相匹配。
– android:filter:Boolean类型。是否开启图像过滤。
– android:gravity:图像显示的位置。
– android:mipMap:Boolean类型。用于开启图片的提示。
– android:tileMode:拼装模式。可使用的值:disabled(默认值,不拼装)、clamp(若drawable有阴影,则重复其边缘颜色)、repeat(在竖直和水平方向上重复阴影图片)、mirror(以镜像的方式重复阴影)
示例:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon"
android:tileMode="repeat" />
Nine-Patch是一个可拉伸的图片类型。其格式为.9.png。在普通图片的四周多出了1dp的宽度,其中,可以在左边和上边的1dp宽度中指定该图片可拉伸的范围,而右边和下边的1dp宽度用于指定图片中显示文字的位置。
文件目录:
res/drawable/filename.9.png
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
示例:
<!-- res/drawable/myninepatch.9.png -->
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myninepatch" />
使用<layer-list>标签包含若干个<item>标签。每一个item表示一个层级的drawable。
文件目录:
res/drawable/filename.xml
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
语法:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</layer-list>
标签及其属性:
<layer-list>:不可缺省,用于包含若干<item>标签。
– xmlns:android:命名空间,不可缺省。
<item>:用于设置每一个层级drawable。
– android:drawable:drawable资源,不可缺省。
– android:id:资源ID。
– android:top:Integer类型。距离容器顶端的偏移量。
– android:right:Integer类型。距离容器右端的偏移量。
– android:bottom:Integer类型。距离容器底端的偏移量。
– android:left:Integer类型。距离容器左端的偏移量。
示例:
<!-- res/drawable/layers.xml -->
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>
代码中引用:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/layers" />
效果如下:
State List drawable可以为控件设置不同状态下的drawable。如button有正在点击、未点击、获得焦点 等状态。
文件目录:
res/drawable/filename.xml
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
语法:
<?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_hovered=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_activated=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
标签及其属性:
<selector>:不可缺省。必须是根标签,包含若干个<item>。
– xmlns:android:命名空间
– android:constantSize :Boolean类型。若为true,表示当状态改变时,drawable的尺寸不变。默认为false。
– android:dither:Boolean类型。默认为true。若为true,表示如果图片的像素类型与屏幕不符,则适配该屏幕类型。(如位图类型是ARGB 8888,而屏幕是RGB 565)。
– android:variablePadding:Boolean类型。默认为false。若为true,表示当状态改变时,控件的padding值会改变。
<item>:定义某个状态下的drawable资源。必须是<selector>标签的子标签。
– android:drawable:drawable资源。不可缺省。
– android:state_pressed:Boolean类型。默认为false。为true时,表示该控件正在被点击。
– android:state_focused:Boolean类型。默认为false。为true时表示该控件获得了焦点,即为可输入状态。
– android:state_hovered: Boolean类型。光标是否悬停,通常与focused state相同。默认为false。
– android:state_selected:Boolean类型。控件是否处于选中状态。
– android:state_checkable:Boolean类型。true表示控件设为可选的。仅用于某个控件可以在可选的和非可选的之间切换。
– android:state_checked:Boolean类型。true表示控件被勾选状态。
– android:state_enabled:Boolean类型。控件是否可接受点击事件。
– android:state_activated:Boolean类型。是否将该控件设为被点击标记状态。即点击后会永久变色,表示该控件被点击过。
– android:state_window_focused:Boolean类型。true表示当该应用程序窗口处于前台时。
示例:
<!-- 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:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
在代码中引用:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
管理着若干个drawable的资源。
文件目录:
res/drawable/filename.xml
引用方式:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
语法:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer" />
</level-list>
标签及其属性:
<level-list>:必须作为根标签。其中可包含若干个<item>标签。
– xmlns:android:命名空间
<item>:该标签作为一个层级包含一个drawable。
– android:drawable :drawable资源。不可缺省。
– android:maxLevel:Integer类型。该item项的最大级别。
– android:minLevel:Integer类型。该item项的最小级别。
示例:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/status_off"
android:maxLevel="0" />
<item
android:drawable="@drawable/status_on"
android:maxLevel="1" />
</level-list>
Transition Drawable 用于在两个drawable之间的切换产生淡入淡出效果。
文件目录:
res/drawable/filename.xml
引用位置:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</transition>
示例:
<!-- res/drawable/transition.xml -->
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/on" />
<item android:drawable="@drawable/off" />
</transition>
引入控件:
<ImageButton
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/transition" />
Java中引入:在500毫秒内将第一个drawable切换至第二个drawable
ImageButton button = (ImageButton) findViewById(R.id.button);
TransitionDrawable drawable = (TransitionDrawable) button.getDrawable();
drawable.startTransition(500);
语法:
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:insetTop="dimension"
android:insetRight="dimension"
android:insetBottom="dimension"
android:insetLeft="dimension" />
标签及其属性:
<inset>:必须作为根标签。
– xmlns:android :命名空间。
– android:drawable:插入的drawable资源。不可缺省。
– android:insetRight:Dimension类型。右部插入。
– android:insetTop:Dimension类型。顶部插入。
– android:insetBottom:Dimension类型。底部插入。
– android:insetLeft:Dimension类型。右部插入。
示例:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/background"
android:insetTop="10dp"
android:insetLeft="10dp" />
可以在XML中自定义一个普通性状的drawable。
文件目录:
res/drawable/filename.xml
引用方式:
In Java: R.drawable.filename
In 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="float"
android:centerY="float"
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>:指定drawable形状。必须是根标签。
– xmlns:android:命名空间。不可缺省。
– android:shape:指定drawable形状。可选值为:"rectangle"(缺省值,矩形)、"oval"(椭圆)、"line"(直线) 、"ring"(圆环)
<corners>:为drawable添加圆形边角。只有android:shape属性设为"rectangle"时,该标签及标签中的属性才有效。
– android:radius :指定圆角半径。单位Dimension。
– android:topLeftRadius:左上角半径
– android:topRightRadius:右上角半径
– android:bottomLeftRadius:左下角半径
– android:bottomRightRadius:右下角半径
<gradient>:渐变颜色
– android:angle :Integer类型。渐变角度。0表示从左至右。90表示从下至上。45表示从左下至右上。默认为0。
– android:centerX:Float类型。0.0-1.0。渐变中心的x的坐标。
– android:centerY:Float类型。0.0-1.0。渐变中心的y的坐标。
– android:centerColor:Color类型。是一个16进制数。表示起始颜色与最终颜色的中间色。
– android:endColor:Color类型。最终色。
– android:startColor:Color类型。起始色。
– android:type:渐变模式。可选值:"linear"(线性渐变。缺省值)、"radial"(放射式渐变)、"sweep"(扫描渐变)
– ndroid:useLevel:Boolean类型。若作用在LevelListDrawable上则为true。
<padding>:与父容器View的边距。
– android:left:Dimension类型。左边距。
–android:right:Dimension类型。右边距。
–android:top:Dimension类型。上边距。
– android:bottom:Dimension类型。下边距。
<size>:drawable的尺寸。
– android:height :Dimension类型。形状的高度。
– android:width:Dimension类型。形状的宽度。
<solid>:填充颜色。
– android:color:Color类型。
<stroke>:边框线。
– android:width:Dimension类型。边框线宽度。
– android:color:Color类型。边框线颜色。
– android:dashGap:Dimension类型。边框线为虚线时两虚线的间隔。
– android:dashWidth:Dimension类型。虚线的长度。
示例:
<?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>
引入控件:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
Java代码中引入:
Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);
TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);标签:
原文地址:http://blog.csdn.net/vanpersie_9987/article/details/51780409