保存画布而不显示内容

时间:2014-01-30 19:39:13

标签: android canvas ondraw

我正在绘制一个画布(canvas1)并且想要知道在不绘制到屏幕的情况下绘制到第二个画布(canvas2)是否可行。

然后将canvas2保存到文件系统,即使它没有显示在屏幕上。

这就是我对canvas2的看法

 Bitmap.Config conf = Bitmap.Config.ARGB_8888;  //Config.RGB_565;
 KeyBitmap = Bitmap.createBitmap(getWidth(), getHeight(), conf); 
 canvas2 = new Canvas(KeyBitmap);

 .....
 canvas1 stuff

然后onDraw方法使用canvas1并成功显示到屏幕

在ondraw期间,我也像这样绘制到canvas2

 canvas2.drawRect(key_offset_left + (key_col_count * bestsize),                 //left 
                                key_offset_top + (key_row_count*bestsize),                  //top
                                key_offset_left + (key_col_count * bestsize) + bestsize -1, //right
                                key_offset_top + (key_row_count * bestsize) + bestsize -1,  //bottom
                                paint3);

后来我希望能够保存canvas2位图(KeyBitmap)而不将其显示在屏幕上,这就是我所拥有的

    String mfolder = Environment.getExternalStorageDirectory().getPath() + "/myapp";
    KeyBitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File(mfolder + "/chart2.jpg")));

创建一个文件,其背景为黑色,没有绘制的矩形内容。 我通过暂时将canvas2更改为canvas1

来检查drawRect是否成功绘制

我想要绘制到第二个画布的原因是我已经用完了屏幕以在一个画布上显示。我已经实现了缩放和平移,当我将它全部绘制到一个画布时可以工作但是当我想保存到文件系统时它只捕获视图中可查看的内容并使内容可读,某些内容需要关闭屏幕。这就是为什么我试图将它作为两个画布然后保存为单独的文件。

为什么我的canvas2代码没有输出绘制的内容?

谢谢

0 个答案:

没有答案