1.在Android項(xiàng)目開(kāi)發(fā)的時(shí)候,經(jīng)常看到很漂亮的UI界面,比如,當(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è)可畫(huà)的對(duì)象,可能是一張位圖BitmapDrawable,也可能是一個(gè)圖形ShapeDrawable,還有可能是一個(gè)圖層LayerDrawable。根據(jù)不同的畫(huà)圖需求創(chuàng)建相應(yīng)的可畫(huà)對(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方式:
<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類(lèi):
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);
}
}
新聞熱點(diǎn)
疑難解答
圖片精選