Android LayerDrawable使用實例
1.在Android項目開發(fā)的時候,經(jīng)??吹胶芷恋腢I界面,比如,當你點擊一張圖片被選中的時候,覆上一張透明的圖片。表示被選中,區(qū)別與那些沒有被選中的。這種是如何實現(xiàn)的呢?答案是LayerDrawable的使用出現(xiàn)的效果。下面是LayerDrawable的總結(jié),若有不正確的地方,請大家指正。
2.簡單的來說,LayerDrawable繼承與Drawable,Drawable就是一個可畫的對象,可能是一張位圖BitmapDrawable,也可能是一個圖形ShapeDrawable,還有可能是一個圖層LayerDrawable。根據(jù)不同的畫圖需求創(chuàng)建相應(yīng)的可畫對象。
LayerDrawable系統(tǒng)將會按這些Drawable對象的數(shù)組順序來繪制它們,索引最大的Drawable對象將會被繪制在最上面,定義LayerDrawable對象的XML文件的根元素layer-list ,該元素可以包含多個item元素。
3.代碼實現(xiàn)如下:
方法一: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);
// 創(chuàng)建資源對象
Resources resources = getResources();
// 創(chuàng)建數(shù)組對象
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);
// 設(shè)置背景
mView.setImageDrawable(layerDrawable);
}
}
相關(guān)文章
Android中用Builder模式自定義Dialog的方法
在任何軟件操作系統(tǒng)中,Dialog即對話框都是一種重要的交互模式與信息載體,而Android系統(tǒng)本身的Dialog擁有固定的樣式,并且在5.0后采用Material Design設(shè)計風格的Dialog美觀大氣。這篇文章將詳細介紹Android中用Builder模式自定義Dialog的方法,有需要的可以參考借鑒。2016-10-10
Android 自定義Switch開關(guān)按鈕的樣式實例詳解
本文主要講的是在Android原生Switch控件的基礎(chǔ)上進行樣式自定義,內(nèi)容很簡單,但是在實現(xiàn)的過程中還是遇到了一些問題,在此記錄下來,需要的朋友參考下吧2017-12-12
Android如何讓WebView中的HTML5頁面實現(xiàn)視頻全屏播放
最近在工作遇到一個需求,需要讓WebView中的HTML5頁面實現(xiàn)視頻全屏播放的效果,通過查找相關(guān)的資料終于找到了解決的方法,所以想著分享給大家,所以本文介紹了關(guān)于Android如何讓WebView中的HTML5頁面實現(xiàn)視頻全屏播放的相關(guān)資料,需要的朋友可以參考學習。2017-04-04
Android應(yīng)用開發(fā)SharedPreferences存儲數(shù)據(jù)的使用方法
SharedPreferences是Android中最容易理解的數(shù)據(jù)存儲技術(shù),實際上SharedPreferences處理的就是一個key-value(鍵值對)SharedPreferences常用來存儲一些輕量級的數(shù)據(jù)2012-11-11
Android編程之PopupWindow隱藏及顯示方法示例(showAtLocation,showAsDropDown
這篇文章主要介紹了Android編程之PopupWindow隱藏及顯示方法,結(jié)合實例形式分析了showAtLocation及showAsDropDown方法實現(xiàn)PopupWindow控件隱藏及顯示功能相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
Android編程UI設(shè)計之GridView和ImageView的用法
這篇文章主要介紹了Android編程UI設(shè)計之GridView和ImageView的用法,結(jié)合實例形式較為詳細的分析了Android中GridView和ImageView組件的相關(guān)方法使用技巧,需要的朋友可以參考下2016-01-01

