天天看點

android Drawable資源檔案

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>
           

 如圖:

android Drawable資源檔案