在我的 Android 绘画应用程序中,我将在 Canvas 上绘画。 但有时我在那幅画之前有图像。那时我的油漆变慢了。问题出在哪里??
只在 Canvas 上绘画的代码:
@Override
protected void onDraw(Canvas canvas) {
//canvas.drawColor(0, PorterDuff.Mode.CLEAR);
// set the Canvas Color
canvas.drawColor(canvasColor); // edited
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
获取图像作为背景的代码是:
@Override
protected void onDraw(Canvas canvas) {
//canvas.drawColor(0, PorterDuff.Mode.CLEAR);
// set the Canvas Color
canvas.drawColor(canvasColor); // edited
if(!(imagePath==null))
{
Bitmap tempBitmap = BitmapFactory.decodeFile(imagePath); // from the gallery
photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true);
}
if(!(imagePath==null))
{
canvas.drawBitmap (photoBitmap,0, 0, null);
}
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
现在我不知道为什么我在 Canvas 上绘画时绘画速度变慢,以及是否有图像作为背景。 请帮助我。 谢谢。
最佳答案
由于 onDraw 函数中的 Bitmap tempBitmap = BitmapFactory.decodeFile(imagePath); 这行,您的应用程序可能会变慢。如果您在每个实例中都更改位图,那么您应该在 onDraw 之外声明它,只需为其分配新的位图,如果您不更改它,则只需在开始时初始化并分配对象,而在 onDraw 中,只需在 Canvas 中绘制它。
关于android - 为什么图像上的油漆变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8351759/