我正在尝试创建一个签名组件,用户可以在其中将他的签名写在视图上,并将生成的位图保存为图像。我能够成功实现这一目标。
但是我的问题是保存的图像的背景色始终是透明的。在我的onDraw方法中,我执行以下操作:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.GREEN);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
在写入文件系统时,我执行以下操作:
fOut = new FileOutputStream(file);
mBitmap.compress(Bitmap.CompressFormat.PNG,100, fOut);
fOut.flush();
fOut.close();
捕获签名时设备上的视图如下图所示:
将位图写入文件系统后,图像如下:
有人能帮我这个忙吗?我希望图像具有与画布相同的背景。
提前致谢。
最佳答案
从您的问题看来,您似乎想将整个视图另存为位图而不是路径对象。为此,您只需将视图的DrawingCache
保存为Bitmap
。
myView.buildDrawingCache()
Bitmapt b = myView.getDrawingCache()
fOut = new FileOutputStream(file);
mBitmap.compress(Bitmap.CompressFormat.PNG,100, fOut);
fOut.flush();
fOut.close();
关于android - 从位图创建的图像的背景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7597821/