XML Drawable是google为android定义的一种声明式图形文件格式,类似于SVG,但更简单,官方文档非常少,网上有人整理了一份文档,值得细看:

Android Drawable XML Documentation

下面是一个简单的使用例子:

Activity代码

package com.test; import android.app.Activity;import android.os.Bundle; public class DrawableTest extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}


布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="fill_parent"    android:layout_height="fill_parent">    <TextView android:textSize="16sp" android:layout_width="fill_parent"        android:layout_height="wrap_content" android:text="@string/hello"        android:background="@drawable/rect_gradient_linear" />    <TextView android:textSize="16sp" android:layout_width="fill_parent"        android:layout_height="wrap_content" android:text="@string/hello"        android:background="@drawable/oval_gradient_linear" />    <TextView android:textSize="16sp" android:layout_width="fill_parent"        android:layout_height="wrap_content" android:text="@string/hello"        android:background="@drawable/rect_solid_stroke" />            <TextView android:textSize="16sp" android:layout_width="fill_parent"        android:layout_height="wrap_content" android:text="@string/hello"        android:background="@drawable/rect_solid_corners" /></LinearLayout>


Shapre使用实例,共四个:

<?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="#FF4488ee"        android:type="linear" android:angle="270" />    <padding android:left="2dp" android:top="2dp" android:right="2dp"        android:bottom="2dp" /></shape>


1 2 3 4 5 6 7 8 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "oval" > < gradient android:startColor = "#FFaa6622" android:endColor = "#FF2288ee" android:type = "linear" /> < padding android:left = "2dp" android:top = "2dp" android:right = "2dp" android:bottom = "2dp" /> </ shape >
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="#ffff0000" />    <padding android:left="5dp" android:top="2dp" android:right="2dp"        android:bottom="5dp" />    <stroke android:width="2dp" android:color="#ffffffff" android:dashGap="5dp"        android:dashWidth="10dp" /></shape>


<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="#8800ff00" />    <padding android:left="5dp" android:top="5dp" android:right="5dp"        android:bottom="5dp" />    <corners android:radius="15dp" /></shape>


效果图

下面是系统源码里的例子,文件为:source/frameworks/base/core/res/res/drawable/progress_horizontal.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">     <item android:id="@android:id/background">        <shape>            <corners android:radius="5dip" />            <gradient                    android:startColor="#ff9d9e9d"                    android:centerColor="#ff5a5d5a"                    android:centerY="0.75"                    android:endColor="#ff747674"                    android:angle="270"            />        </shape>    </item>     <item android:id="@android:id/secondaryProgress">        <clip>            <shape>                <corners android:radius="5dip" />                <gradient                        android:startColor="#80ffd300"                        android:centerColor="#80ffb600"                        android:centerY="0.75"                        android:endColor="#a0ffcb00"                        android:angle="270"                />            </shape>        </clip>    </item>     <item android:id="@android:id/progress">        <clip>            <shape>                <corners android:radius="5dip" />                <gradient                        android:startColor="#ffffd300"                        android:centerColor="#ffffb600"                        android:centerY="0.75"                        android:endColor="#ffffcb00"                        android:angle="270"                />            </shape>        </clip>    </item> </layer-list>


更多相关文章

  1. Android文件解压工具类
  2. android apk dex odex jar 等文件的 反编译工具
  3. 【转】android编译系统的makefile文件Android.mk写法
  4. Android+JNI调用–文件操作
  5. Android错误处理——Android读取txt文件乱码解决方案
  6. Android 10 创建文件失败
  7. Android官方入门文档[13]暂停和恢复一个Activity活动

随机推荐

  1. Android(安卓)Studio Fragment问题与解决
  2. android 显示 网络图片
  3. Android Ftp 简单上传下载
  4. Android 利用handler传递数据
  5. android 图片圆角处理
  6. Android 7.0调用系统相机返回路径问题
  7. Gradle 的配置
  8. TextWatcher监控EditText (转)
  9. 检测android机器是否有GPS模块
  10. Android调用系统播放器