我正在尝试创建一个签名组件,用户可以在其中将他的签名写在视图上,并将生成的位图保存为图像。我能够成功实现这一目标。
但是我的问题是保存的图像的背景色始终是透明的。在我的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/

10-10 23:09