android 层叠图片形成一张图片
16lz
2022-01-27
代码实现:
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的文件,内容如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <layer-list
- xmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:id="@+id/user_faceback_drawable"android:drawable="@drawable/faceback"/>
- <itemandroid: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" />
更多相关文章
- android 在SDCard获取图片
- 在android里保存数据的三种形式(Saving Data)
- Android(安卓)解析excel文件
- Android(安卓)InputStream与String,Byte之间互转
- Android(安卓)实现一个http 带参数登录
- Android学习笔记(二十)
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 箭头函数的基础使用
- Python技巧匿名函数、回调函数和高阶函数