Android LayerDrawable使用實(shí)例
1.在Android項(xiàng)目開發(fā)的時(shí)候,經(jīng)??吹胶芷恋腢I界面,比如,當(dāng)你點(diǎn)擊一張圖片被選中的時(shí)候,覆上一張透明的圖片。表示被選中,區(qū)別與那些沒(méi)有被選中的。這種是如何實(shí)現(xiàn)的呢?答案是LayerDrawable的使用出現(xiàn)的效果。下面是LayerDrawable的總結(jié),若有不正確的地方,請(qǐng)大家指正。
2.簡(jiǎn)單的來(lái)說(shuō),LayerDrawable繼承與Drawable,Drawable就是一個(gè)可畫的對(duì)象,可能是一張位圖BitmapDrawable,也可能是一個(gè)圖形ShapeDrawable,還有可能是一個(gè)圖層LayerDrawable。根據(jù)不同的畫圖需求創(chuàng)建相應(yīng)的可畫對(duì)象。
LayerDrawable系統(tǒng)將會(huì)按這些Drawable對(duì)象的數(shù)組順序來(lái)繪制它們,索引最大的Drawable對(duì)象將會(huì)被繪制在最上面,定義LayerDrawable對(duì)象的XML文件的根元素layer-list ,該元素可以包含多個(gè)item元素。
3.代碼實(shí)現(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)建資源對(duì)象
Resources resources = getResources();
// 創(chuàng)建數(shù)組對(duì)象
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點(diǎn)擊事件分發(fā)機(jī)制
本篇文章主要介紹了解析Android點(diǎn)擊事件分發(fā)機(jī)制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Android WebView支持input file啟用相機(jī)/選取照片功能
這篇文章主要介紹了Android-WebView支持input file啟用相機(jī)/選取照片功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08android自動(dòng)化測(cè)試知識(shí)點(diǎn)總結(jié)
在本文里小編給大家分享了關(guān)于android自動(dòng)化測(cè)試入門的相關(guān)知識(shí)點(diǎn),需要的朋友們跟著參考下吧。2019-06-06Kotlin實(shí)用語(yǔ)法糖空安全類型轉(zhuǎn)換及相等性判斷
這篇文章主要為大家介紹了Kotlin實(shí)用語(yǔ)法糖空安全類型轉(zhuǎn)換及相等性判斷示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Android開發(fā)之保存圖片到相冊(cè)的三種方法詳解
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)的保存圖片到相冊(cè)功能的三種方法,文中的示例代碼講解詳細(xì),有一定的參考價(jià)值,感興趣的可以了解一下2022-04-04Android調(diào)用密碼鎖屏校驗(yàn)的流程代碼詳解
這篇文章主要介紹了Android調(diào)用密碼鎖屏校驗(yàn)的流程代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Android自定義view實(shí)現(xiàn)輸入控件
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)輸入控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android編程判斷手機(jī)上是否安裝了某個(gè)程序的方法
這篇文章主要介紹了Android編程判斷手機(jī)上是否安裝了某個(gè)程序的方法,涉及Android針對(duì)程序包的操作及進(jìn)程判斷的相關(guān)技巧,需要的朋友可以參考下2015-11-11總結(jié)Android App內(nèi)存優(yōu)化之圖片優(yōu)化
網(wǎng)上有很多大拿分享的關(guān)于Android性能優(yōu)化的文章,主要是通過(guò)各種工具分析,使用合理的技巧優(yōu)化APP的體驗(yàn),提升APP的流暢度,但關(guān)于內(nèi)存優(yōu)化的文章很少有看到。下面是我在實(shí)踐過(guò)程中使用的一些方法,很多都是不太成熟的項(xiàng)目,只是將其作為一種處理方式分享給大家。2016-08-08