你好我们正在尝试获取一个图像(来自资源的帧)将其覆盖在原始位图上。到目前为止,我无法使我的Bitmap进入框架,因为框架始终为空。原始位图现在显示在框架内。 这是我用来完成此任务的代码。
Canvas canvas = new Canvas(); Bitmap border = null; Bitmap scaledBorder = null; border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1); int width = bmp.getWidth(); int height = bmp.getHeight(); scaledBorder = Bitmap.createScaledBitmap(border,width,height, false); canvas.drawBitmap(scaledBorder, 0, 0, new Paint()); view.setImageBitmap(scaledBorder);
bmp作为我在Gallery或Camera中的原始位图。我找不到把它们放在一起。只显示帧而不是bmp。 提前谢谢。
答案 0 :(得分:5)
void hm1(){
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);
}
通过在任何点击按钮,菜单等上添加此方法,您可以相互绘制两个位图
P.S:Bitmap change
是来自原始方法的另一个位图,因为我不希望用户在原始方法上应用Overlay但在更改的方法上应用Overlay。
希望答案有助于某人。感谢
答案 1 :(得分:0)
底线,首先需要将原始图像添加到画布,然后是边框,然后将画布放在视图上。最好的办法是在onDraw()方法中执行此操作。这样的事情应该有效:
@Override
void onDraw (Canvas canvas)
{
canvas.drawBitmap(bmp,0,0,new Paint())
Bitmap border = null;
Bitmap scaledBorder = null;
border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
int width = bmp.getWidth();
int height = bmp.getHeight();
scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
}
或者,您可以从视图中调用draw()函数。
canvas.drawBitmap(bmp,0,0,new Paint())
Bitmap border = null;
Bitmap scaledBorder = null;
border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
int width = bmp.getWidth();
int height = bmp.getHeight();
scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
view.draw(canvas);