我有以下代码:
canvas.drawBitmap (mBitmap, 0, 0,null);
如何将mBitmap
设为PATH或SD卡中的图像?所以当我保存画布时,它会保存该URL的图像吗?
非常感谢您的帮助! :)
答案 0 :(得分:1)
如果是URL,则需要下载字节流并保存,然后使用BitmapFactory将其解码为位图对象。
可以找到here
的示例同样适用于文件,但您可以使用BitmapFactory.decodeFile(...)
答案 1 :(得分:0)
除非您为自己的目的创建自定义CustomCanvas
课程,否则无法执行此操作。无论如何,你仍然需要下载&在draw
之前缓存图片。
答案 2 :(得分:0)
要点:
启用绘图缓存:
setDrawingCacheEnabled(true);
将画布映射到位图:
canvas = mSurfaceHolder.lockCanvas(null);
if(mBitmap == null){
mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);;
}
final Canvas c = new Canvas (mBitmap);
c.drawColor(0, PorterDuff.Mode.CLEAR);
commandManager.executeAll(c);
canvas.drawBitmap (mBitmap, 0, 0,null);
保存图片:
final FileOutputStream out = new FileOutputStream(new File(APP_FILE_PATH + "/myAwesomeDrawing.png"));
nBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();