Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android LayerDrawable使用實例

Android LayerDrawable使用實例

編輯:關於Android編程

1.在Android項目開發的時候,經常看到很漂亮的UI界面,比如,當你點擊一張圖片被選中的時候,覆上一張透明的圖片。表示被選中,區別與那些沒有被選中的。這種是如何實現的呢?答案是LayerDrawable的使用出現的效果。下面是LayerDrawable的總結,若有不正確的地方,請大家指正。

2.簡單的來說,LayerDrawable繼承與Drawable,Drawable就是一個可畫的對象,可能是一張位圖BitmapDrawable,也可能是一個圖形ShapeDrawable,還有可能是一個圖層LayerDrawable。根據不同的畫圖需求創建相應的可畫對象。

LayerDrawable系統將會按這些Drawable對象的數組順序來繪制它們,索引最大的Drawable對象將會被繪制在最上面,定義LayerDrawable對象的XML文件的根元素layer-list ,該元素可以包含多個item元素。

3.代碼實現如下:

方法一:XML方式:
復制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>
    <item
        android:left="25dp"
        android:top="25dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>
    <item
        android:left="50dp"
        android:top="50dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>

</layer-list>

方法二:代碼方式:MainActivity.java類:
復制代碼 代碼如下:
package com.scd.layerdrawabledemo;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;

public class MainActivity extends Activity {
    private ImageView mView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mView = (ImageView) findViewById(R.id.imageView1);
        // 創建資源對象
        Resources resources = getResources();
        // 創建數組對象
        Drawable[] layers = new Drawable[2];
        layers[0] = resources.getDrawable(R.drawable.ic_01);
        layers[1] = resources.getDrawable(R.drawable.ic_02);

        LayerDrawable layerDrawable = new LayerDrawable(layers);
        // 設置背景
        mView.setImageDrawable(layerDrawable);

    }
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved