我害怕已经有这个问题的不幸答案,但以防万一...我使用SurfaceView来执行一些图像处理与位图(灯光和颜色修改)我需要将修改的位图(即SurfaceView的内容)导入到新的位图中,以便将其保存为图像文件。Android:创建一个带有SurfaceView内容的位图
我一直在环顾四周,似乎有可能从View.getDrawingCache()获取位图,但它不适用于SurfaceView。我得到的只是一张空白的位图。
有没有解决这个问题的方法?
感谢
我害怕已经有这个问题的不幸答案,但以防万一...我使用SurfaceView来执行一些图像处理与位图(灯光和颜色修改)我需要将修改的位图(即SurfaceView的内容)导入到新的位图中,以便将其保存为图像文件。Android:创建一个带有SurfaceView内容的位图
我一直在环顾四周,似乎有可能从View.getDrawingCache()获取位图,但它不适用于SurfaceView。我得到的只是一张空白的位图。
有没有解决这个问题的方法?
感谢
你能画出你的SurfaceView到这是由一个位图支持的画布?
// be sure to call the createBitmap that returns a mutable Bitmap
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
yourSurfaceView.draw(c);
There is no simple way to capture frames of SurfaceView,这样你就可以考虑使用TextureView而不是SurfaceView的:位图可以用textureView.getBitmap()
方法进行检索。
我想使用这个解决方案,但它不可能用于SurfaceView,因为绘图过程是在一个线程中完成的,并且画布是从SurfaceHolder获得的。它以这种方式使用:canvas = surfaceHolder.lockCanvas(null); synchronized(surfaceHolder){doDraw(canvas); } – 2011-01-20 02:46:19