好吧,canvas.draw()
我有多个帧要覆盖在同一个位图上的问题。我成功地做到了这一点。但问题是现在使用相同的方法但不同的边框应用另一个框架时,边框会覆盖旧的边框。
void hm(){
Bitmap border = BitmapFactory.decodeResource(getResources(), R.drawable.vignette2);
int width = bmp.getWidth();
int height = bmp.getHeight();
change = Bitmap.createScaledBitmap(change, width, height, false);
Canvas canvas = new Canvas(change);
Bitmap scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
canvas.drawBitmap(scaledBorder, 0, 0,null);
//canvas.drawBitmap(k, 0, 0, null);
view.setImageBitmap(change);
}
这是另一种方法:
void hm1(){
Bitmap border = BitmapFactory.decodeResource(getResources(), R.drawable.white);
int width = bmp.getWidth();
int height = bmp.getHeight();
change = Bitmap.createScaledBitmap(change, width, height, false);
Canvas canvas = new Canvas(change);
Bitmap scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
canvas.drawBitmap(scaledBorder, 0, 0,null);
//canvas.drawBitmap(k, 0, 0, null);
view.setImageBitmap(change);
}
现在,当我单击button1
叠加层时,将应用于视图。当我单击它时,button2
它也适用于视图,但它不会破坏旧边框(“叠加图像”)。我知道我应该使用不同的位图来处理 imageview 的每个视图。但我正在使用保存按钮,它将保存Bitmap change
这意味着我想在此图像上应用边框并显示它。不覆盖旧边界。
例如,我正在使用QuickAction
,这就是我尝试完成点击的方式。
if (actionId == border0){
hm();
}
if (actionId == border1 ){
hm1();
}
if (actionId == border2 ){
}
它有效,但正如我所说,它覆盖了旧的。任何帮助将不胜感激。提前致谢。明天解决它,我将发布答案:)。