package com.example.imagetoimage;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.os.Bundle;
import android.widget.ImageView;
/**
* 图片合成
* 1.先创建画布
* 2.先画A图片 & 在画B图
* 3.合成完毕
* -找不同原理就是利用两张图片重叠 paint.setXfermode()属性设置Darken
*/
public class MainActivity extends Activity {
ImageView iv;
Bitmap bitmap,alterBitemp,ic_luncher;
Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv =(ImageView) findViewById(R.id.iv);
//返回图像bitmap对象
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
ic_luncher =BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//可修改olterbitmap 属性与 bitmap一致
alterBitemp = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig());
//画布
canvas = new Canvas(alterBitemp);
//canvas.drawBitmap()画笔-合成模式
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.MULTIPLY));
//画出来-两张图片-位置基于左上角
canvas.drawBitmap(bitmap, new Matrix(), paint);
canvas.drawBitmap(ic_luncher, new Matrix(), paint);
//-------------
//显示imageView
iv.setImageBitmap(alterBitemp);
}
}
paint.setXfermode(模式如下图)