代码实现:
private ImageView mImageView;
private TextView tView;@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView=(ImageView)findViewById(R.id.image);
tView=(TextView)findViewById(R.id.tv);
setImage();
}
public void setImage(){
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
Drawable[] array = new Drawable[3];
array[0] = new PaintDrawable(Color.BLUE); //黑色
array[1] = new PaintDrawable(Color.WHITE); //白色
array[2] = new BitmapDrawable(bm); //位图资源
LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组
ld.setLayerInset(0, 1, 1, 1, 1); //第一个参数1代表数组的第二个元素,为白色
ld.setLayerInset(1, 2, 2, 2, 2); //第一个参数1代表数组的第二个元素,为白色
ld.setLayerInset(2, 3, 3, 3, 3); //第一个参数2代表数组的第三个元素,为位图资源
// mImageView.setBackgroundResource(R.drawable.icon);
mImageView.setImageDrawable(ld);
}
资源文件实现:
首先创建一个drawalbe/login_head.xml的文件,内容如下:
Xml代码
- <?xml version="1.0" encoding="UTF-8"?>
- <layer-list
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@+id/user_faceback_drawable" android:drawable="@drawable/faceback" />
- <item android:id="@+id/user_face_drawable" android:drawable="@drawable/h001" android:left="10.0dip" android:top="18.0dip" android:right="25.0dip" android:bottom="35.0dip" />
- </layer-list>
然后就可以使用这个组合的图片了,比如在ImageView中显示:
<ImageView android:id="@+id/faceImg" android:background="@drawable/login_head"
android:layout_width="wrap_content" android:layout_height="wrap_content" />