在输入画布后,我想从文件中加载图像。 然后我想修改它,最后将它存储到同一个文件中。
通过按钮将图像加载(或更新)到myBitMap中。
方法1:不起作用。
protected void onDraw(Canvas canvas) {
if( myBitMap != null) {
// I added an image to it via a button
canvas = new Canvas( myBitMap.copy(Bitmap.Config.ARGB_8888, true));
myBitMap = null;
}
// rest of the drawing code
方法2:确实有效...但需要重新绘制我加载的图像和新更改的内容。因此,在每次更改(onTouch ...)时,我需要重绘两个图像。
protected void onDraw(Canvas canvas) {
if( myBitMap != null) canvas.drawBitmap( myBitMap, 0, 0, null);
// rest of the drawing code
为什么会这样?
有没有办法将加载的图像放入画布使用的位图中?然后有一个完整的位图,用onTouchEvents更改。
答案 0 :(得分:0)
选项1:在加载的位图上绘制并将整体绘制到View的画布上。
缺点是如果使用滚动,视口外的任何内容都会被剪裁。标准绘图缓存的大小有限。
选项2:在位图上绘制并最终在View的画布上绘制。
位图应该是可变的(imMutable = true)。
选项3:使用您自己的大小创建自己的cachedBitmap
这与选项2类似,但您可以使用特定大小定义位图。您可以从将loadedBitmap复制到新的位图等开始。