最近在做一个画板功能,大致的不同颜色画笔、不同粗细已经实现。
参照的是该教程:android-drawing-app
现在要做的功能是,从相册或者相机导入图像,然后在上面涂涂画画,由于橡皮擦的功能其实是一个白色的paint来实现的。因此用了橡皮擦,底层的图像也被画上白色了。想要的效果是橡皮擦只对新画上去的线条有作用,并不影响导入的图像。
网上大致查找资料,好像可以使用两个图层来实现,导入的图像作为最底层,新画的线条在上一层,因此橡皮擦也不会影响到最底层的图像。
导入的图片(bitmap为导入的图片):
drawCanvas.drawBitmap(bitmap, 0, 0, null);
橡皮擦功能:
public void setErase(boolean isErase) {
this.isErase = isErase;
if (isErase) {
drawPaint.setColor(Color.WHITE);
// drawPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
} else {
drawPaint.setColor(tempColor);
drawPaint.setXfermode(null);
}
请问如何设置两个图层,并让后续的线条只操作在第二个图层上?这里有点卡住了。或者有类似功能的demo吗?
十分感谢
Memandangkan anda menyebut lapisan, mengapa tidak lukis imej dalam lapisan?
Apa yang dipanggil pemprosesan imej juga merupakan pengumpulan data Jika anda ingin memprosesnya secara hierarki, anda mesti menyimpan setiap keping data secara berasingan dalam unit storan yang berbeza, supaya jika anda mengubah suai unit data kemudian, ia tidak akan. mempengaruhi data sebelumnya Saya juga telah membuat papan lukisan sedemikian, tetapi saya tidak dapat mencari contoh, tetapi inilah ideanya, saya ucapkan selamat maju jaya1. Saya boleh membuat lapisan dengan paparan bertindih, memproses peristiwa sentuhan dalam lapisan dan menggabungkan data bitmap semasa mengeksport imej
2 semuanya disimpan dalam senarai Apabila melukis, ia dilukis mengikut urutan, dan lapisan atas dilukis yang terakhir ialah yang anda boleh ubah suai