//合成
public class MainActivity extends AppCompatActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv = findViewById(R.id.iv);
Bitmap newP1 = getNewBitmap(R.drawable.p1);
Bitmap newP2 = getNewBitmap(R.drawable.p2);
Bitmap newBitmap = Bitmap.createBitmap(
newP1.getWidth() + newP2.getWidth(),
Math.max(newP1.getHeight(), newP2.getHeight()),
Bitmap.Config.RGB_565
);
Canvas canvas = new Canvas(newBitmap);
canvas.drawBitmap(newP1, 0, 0, null);
canvas.drawBitmap(newP2, newP1.getWidth(), 0, null);
iv.setImageBitmap(newBitmap);
}
private Bitmap getNewBitmap(@DrawableRes int resId) {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resId);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
return Bitmap.createBitmap(bitmap, 0, 0, width / 2, height);
}
}
//保存
public static boolean saveBitmap(Bitmap bitmap, File picFile, Bitmap.CompressFormat format) {
if (bitmap == null)
return false;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(picFile);
bitmap.compress(format, 100, fos);
fos.flush();
return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}public static boolean saveBitmap(Bitmap bitmap, File file) {
return saveBitmap(bitmap, file, Bitmap.CompressFormat.PNG);
}