layer-list:用来多个图层堆叠显示的
在drawable文件夹下创建一个xml文件。比如:background.xml
<pre name="code" class="java"><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:drawable="@drawable/pic1">
<itemandroid:drawable="@drawable/pic2">
</layer-list>
另外在layout文件中指定background属性这样就会加载pic1和pic2这两张图片。
- <ImageView
- ......
- android:background="@drawable/background"
- />
另外还可以使用代码实现:
- Resources r = getResources();
- Drawable[] layers = new Drawable[2];
- layers[0] = r.getDrawable(R.drawable.pic1);
- layers[1] = r.getDrawable(R.drawable.pic2);
- LayerDrawable layerDrawable = new LayerDrawable(layers);
- ((ImageView) findViewById(R.id.imageview)).setImageDrawable(layerDrawable);
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/battery_0" />
<item android:maxLevel="1" android:drawable="@drawable/battery_1" />
<item android:maxLevel="2" android:drawable="@drawable/battery_2" />
<item android:maxLevel="3" android:drawable="@drawable/battery_3" />
<item android:maxLevel="4" android:drawable="@drawable/battery_4" />
</level-list>
然后在layout中把image view的src设置成已创建好的xml文件
程序中变换图片时,只需要使用
imageview.getDrawable().setImageLevel(1);
...
Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。