2011-09-29 30 views
1

我想创建一个签名组件,用户可以在视图上写他的签名,并将结果位图保存为图像。我能够成功实现这一目标。 但我的问题是,被保存的图像的背景颜色始终是透明的。在我的onDraw方法i执行以下操作:从位图创建的图像的背景

@Override 
protected void onDraw(Canvas canvas) { 
    canvas.drawColor(Color.GREEN); 
    canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); 
    canvas.drawPath(mPath, mPaint); 
} 

和当写入到文件系统I执行以下操作:

fOut = new FileOutputStream(file); 
mBitmap.compress(Bitmap.CompressFormat.PNG,100, fOut); 
fOut.flush(); 
fOut.close(); 

设备上的视图,而作为示出的图像捕获签名下面:将位图写入到文件系统 enter image description here

后的图像是如下:

enter image description here

有人可以帮助我。我希望我的图像具有与画布相同的背景。 在此先感谢。

回答

1

从你的问题,你似乎想要将整个视图保存为位图而不是路径对象。要做到这一点,你可以简单地将视图的DrawingCache保存为Bitmap

myView.buildDrawingCache() 
Bitmapt b = myView.getDrawingCache() 
fOut = new FileOutputStream(file); 
mBitmap.compress(Bitmap.CompressFormat.PNG,100, fOut); 
fOut.flush(); 
fOut.close(); 
+0

Hello Slayton。 非常感谢。正是我想要的。 :-) –