Drawable资源

来源:互联网 发布:时时彩毒胆计划软件 编辑:程序博客网 时间:2024/05/21 11:01

1、StateListDawable资源

定义StateListDawable对象的XML文件的根元素为<selector.../>,该元素可以包含多个<item.../>元素,该元素可指定如下属性。

android:color或android:drawable指定颜色或Drawable对象

android:state_xxx指定一个特定状态

如:my_image.xml

<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 指定获得焦点时的颜色 --><item android:state_focused="true"android:color="#f44"/><!-- 指定失去焦点时的颜色 --><item android:state_focused="false"android:color="#eee"/></selector>
<!-- 使用StateListDrawable资源 --><EditText  android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/my_image"/>

2、LayerDrawable资源

定义LayerDrawable对象的XML文件的根元素为<layout-list.../>,该元素可以包含多个<item.../>元素,该元素可指定如下属性。

android:drawable指定作为LayerDrawable元素之一的Drawable元素之一的Drawable对象。

android:id为该Drawable对象指定一个标识

android:buttom|top|left|button他们勇于指定一个长度值,用于指定将该Drawable对象绘制到目标组件的指定位置。

如:my_bar

<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 定义轨道的背景 --><item android:id="@android:id/background"android:drawable="@drawable/grow" /><!-- 定义轨道上已完成部分的外观--><item android:id="@android:id/progress"android:drawable="@drawable/ok" /></layer-list> 


layout_logo

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">     <item>      <bitmap android:src="@drawable/ic_launcher"        android:gravity="center" />    </item>    <item android:top="25dp" android:left="25dp">      <bitmap android:src="@drawable/ic_launcher"        android:gravity="center" />    </item>    <item android:top="50dp" android:left="50dp">      <bitmap android:src="@drawable/ic_launcher"        android:gravity="center" />    </item></layer-list>


应用

<?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"><!-- 定义一个拖动条,并改变轨道外观 --><SeekBar android:layout_width="fill_parent" android:layout_height="wrap_content"android:max="100"android:progressDrawable="@drawable/my_bar"/><ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/layout_logo"/></LinearLayout>


3、ShapeDrawable资源

my_shape_1

<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!-- 设置填充颜色 --><solid android:color="#fff"/><!-- 设置四周的内边距 --><padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /><!-- 设置边框 --><stroke android:width="3dip" android:color="#ff0" /></shape>


my_shape_2

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


my_shape_3

<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"><!-- 定义填充渐变颜色 --><gradient android:startColor="#ff0" android:endColor="#00f" android:angle="45"android:type="sweep"/> <!-- 设置内填充 --><padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /><!-- 设置圆角矩形 --><corners android:radius="8dp" /> </shape>


应用

<?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"><EditTextandroid:layout_width="fill_parent" android:layout_height="wrap_content"android:background="@drawable/my_shape_1"/><EditTextandroid:layout_width="fill_parent" android:layout_height="wrap_content"android:background="@drawable/my_shape_2"/><EditTextandroid:layout_width="fill_parent" android:layout_height="wrap_content"android:background="@drawable/my_shape_3"/></LinearLayout>


4、ClipDrawable资源

一个徐徐渐进展开的风景画

<?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"><ImageView  android:id="@+id/image"android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitStart"android:src="@drawable/my_clip"/></LinearLayout>


 

<?xml version="1.0" encoding="UTF-8"?><clip xmlns:android="http://schemas.android.com/apk/res/android"     android:drawable="@drawable/shuangta"     android:clipOrientation="horizontal"     android:gravity="center"> </clip>


 

public class ClipDrawableTest extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ImageView imageview = (ImageView) findViewById(R.id.image);// 获取图片所显示的ClipDrawable对象final ClipDrawable drawable = (ClipDrawable)imageview.getDrawable();final Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg){// 如果该消息是本程序所发送的if (msg.what == 0x1233){// 修改ClipDrawable的level值drawable.setLevel(drawable.getLevel() + 200);}}};final Timer timer = new Timer();timer.schedule(new TimerTask(){@Overridepublic void run(){Message msg = new Message();msg.what = 0x1233;// 发送消息,通知应用修改ClipDrawable对象的level值。handler.sendMessage(msg);// 取消定时器if (drawable.getLevel() >= 10000){timer.cancel();}}}, 0, 300);}}

5、AnimationDrawable资源

<?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"><ImageView android:id="@+id/image"android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/java"/><Button android:id="@+id/bn"android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始动画"/></LinearLayout>


 

public class AnimationDrawable extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);final ImageView image = (ImageView)findViewById(R.id.image);// 加载动画资源final Animation anim = AnimationUtils.loadAnimation(this,R.anim.my_anim);// 设置动画结束后保留结束状态anim.setFillAfter(true);Button bn = (Button) findViewById(R.id.bn);bn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// 开始动画image.startAnimation(anim);}});}}




 

0 0
原创粉丝点击