1、StateListDrawable 資源
2、LayerDrawable 資源 多層圖檔層疊
3、ShapeDrawable 資源 繪制一個圖形
4、ClipDrawable 資源 顯示裁剪部分
java代碼:
package com.lovo.activity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import com.lovo.R;
public class TestDrawableActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_test_drawable);
ImageView clipImg = (ImageView) findViewById(R.id.main_test_drawable_clip_img);
//level的取值範圍:0-10000;取值10000時,表示全部截取
clipImg.getDrawable().setLevel(6000);
}
}
XML檔案:
1、Button的點選效果:
res/test_drawable.xml
<!-- 按鈕點選效果 -->>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/drawable_btn_press"
android:text="登入" />
drawable/drawable_btn_press.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/btn_login_sel"></item>
<item android:state_pressed="false" android:drawable="@drawable/btn_login_nor"></item>
</selector>
2、編輯框的設定:
res/test_drawable.xml
<!-- 設定編輯框的背景色,内邊距,邊框的顔色和大小,圓角矩形,背景漸變色 ;編輯框的焦點-->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/drawable_edittext_border"
android:textColor="@drawable/drawable_edittext_focus" />
drawable_edittext_focus.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 背景填充色 -->
<solid android:color="#ff0" />
<!-- 内邊距 -->
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
<!--
邊框設定
width:邊框大小
color:邊框顔色
-->
<stroke
android:width="2dp"
android:color="#00f" />
<!--
設定圓角矩形
radius:半徑;設定四個圓角的大小。也可以單獨設定
-->
<corners android:radius="10dp" />
<!--
設定背景漸變色
startColor:開始顔色
endColor:結束顔色
centerColor:中間顔色
-->
<gradient
android:endColor="#80ff00ff"
android:startColor="#ffff0000" />
</shape>
3、文本框焦點
res/test_drawable.xml
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/drawable_edittext_focus" />
drawable/drawable_edittext_foucs.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
selector 選擇器 擷取焦點,設定顔色
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#f00"></item>
<item android:state_focused="false" android:color="#f0f"></item>
</selector>
4、進度條的設定
res/test_drawable.xml
<!-- 設定進度條的背景色和覆寫顔色 -->
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:progressDrawable="@drawable/drawable_progress_bg" />
drawable/drawable_progress_bg.xml
<?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/list_below_sel">
</item>
<!-- 指定顯示為目标元件已覆寫的進度顔色 -->
<item
android:id="@android:id/progress"
android:drawable="@drawable/about_background_land">
</item>
</layer-list>
5、滑動條的設定
res/test_drawable.xml
<!-- 設定滑動條的背景色和覆寫顔色 -->
<SeekBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/drawable_progress_bg" />
6、圖檔的層疊
res/test_drawable.xml
<!-- 設定圖檔的層疊 -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/drawable_multi_img" />
drawable/drawable_multi_img.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
層疊圖檔
bitmap 鋪列方式
-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<bitmap
android:gravity="left|top"
android:src="@drawable/title_button_group_left_normal" >
</bitmap>
</item>
<item android:left="104px">
<bitmap
android:gravity="left|top"
android:src="@drawable/title_button_group_middle_normal" >
</bitmap>
</item>
<item android:left="209px">
<bitmap
android:src="@drawable/title_button_group_right_normal" >
</bitmap>
</item>
</layer-list>
7、圖形繪制
res/test_drawable.xml
<!-- 繪制矩形圖形,并設定他的漸變顔色 -->
<View
android:layout_width="match_parent"
android:layout_height="2px"
android:layout_marginTop="50dp"
android:background="@drawable/drawable_split_line" />
drawable/drawable_split_line.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 繪制一個矩形形狀 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 設定矩形開始,中間,結束時的顔色;漸變色 -->
<gradient
android:centerColor="#efefef"
android:endColor="#111111"
android:startColor="#111111" />
</shape>
8、圖檔剪切
res/test_drawable.xml
<!-- 顯示剪切圖圖檔 -->
<ImageView
android:id="@+id/main_test_drawable_clip_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/drawable_clip_img" />
drawable/drawable_clip_img
<?xml version="1.0" encoding="utf-8"?>
<!-- 裁剪 -->
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/logo"
android:clipOrientation="horizontal"
android:gravity="center"
>
</clip>
如圖: