Android官方文档之App Resources(下)

本文将介绍Android中Resource Types的drawable、menu、layout。如需访问官方原文,您可以点击这些链接:

  • 《Drawable Resources》

  • 《Layout Resource》

  • 《Menu Resource》

如需了解Android中的其他资源介绍(Animation、Color State List、String、Style),您可以点击这个链接:《Android官方文档之App Resources(中)》。

布局资源(Layout Resource)

布局资源用于定义组件的布局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>

根标签可以是 ViewGroupView、或 <merge>之一。

标签及其属性:

  • <ViewGroup>:承载其他View的容器。如LinearLayout, RelativeLayout, FrameLayout等。并不是所有的<ViewGroup>都能在布局中直接包含View,比如说AdapterView,它的子View来自于Adapter。

    android:id :资源ID。

    android:layout_height:dp或关键字(wrap_contentmatch_parent)。不可缺省。

    android:layout_width:dp或关键字(wrap_contentmatch_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);
}

菜单资源(Menu Resource)

菜单资源为程序提供菜单项。如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 Resources)

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对象。

位图(Bitmap)

Android支持三种位图文件。.png (推荐), .jpg (可接受), .gif (不推荐)。

位图文件(Bitmap File)

文件目录:

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)

一个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图片(Nine-Patch File)

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

使用<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

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:constantSizeBoolean类型。若为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" />

Level List

管理着若干个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

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);

Inset Drawable

语法:

<?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" />

Shape Drawable

可以在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:centerColorColor类型。是一个16进制数。表示起始颜色与最终颜色的中间色。

    android:endColorColor类型。最终色。

    android:startColorColor类型。起始色。

    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);

你可能感兴趣的:(layout,drawable,menu)