我正在开发app,它可以让用户在ImageView中打开图片然后在其上绘制线条并删除它们。但我有一个大问题:当我加载一个大图像时,绘图过程变得非常慢。但是当图像很小时,绘制过程是正常的)))。
这是我用来绘制线条的算法: 1.从SD卡打开图像(解码图像尺寸并在必要时重新调整尺寸)。 2.通过setImageBitmap(bitmap)将Bitmap放入ImageView;方法 3.创建具有原始位图所具有的宽度和高度的透明位图(以在其上绘制和擦除线条)。 4.在ImageView onDraw()方法
中绘制或擦除透明位图上的线条(使用Path类)这是我的onDraw()方法:
@Override
protected void onDraw(Canvas canvas) {
super.setImageMatrix(mMatrix);
super.onDraw(canvas);
if (!mFragmentImage.inDrawMode()) return;
canvas.save();
if (mFragmentImage.mShape!=null){
if (mFragmentImage.mShape.getType() == CustomShape.SHAPE_LINE) {
mOverlayCanvas.drawPath(mFragmentImage.mShape.getPath(), mFragmentImage.mShape.getPaint());
}
}
if (mOverlay!=null) canvas.drawBitmap(mOverlay, mMatrix, null);
canvas.restore();
}
任何人都可以提出一些建议,让他们更快地完成绘图过程。