Java 在原始优化中,如何提高性能?
我试图在my.png图像上画图,但效果非常慢。如果我在没有.png文件的imageView上画图,效果很好。我怎样才能解决这个问题?据我所知,我需要防止“一直画很多画”,我如何才能意识到这一点 代码: 您的onDraw()方法应如下所示:Java 在原始优化中,如何提高性能?,java,android,canvas,bitmap,ondraw,Java,Android,Canvas,Bitmap,Ondraw,我试图在my.png图像上画图,但效果非常慢。如果我在没有.png文件的imageView上画图,效果很好。我怎样才能解决这个问题?据我所知,我需要防止“一直画很多画”,我如何才能意识到这一点 代码: 您的onDraw()方法应如下所示: @Override protected void onDraw(Canvas canvas) { paint.setColor(Color.RED); canvas.drawBitmap(size, 0, 0, paint); can
@Override
protected void onDraw(Canvas canvas) {
paint.setColor(Color.RED);
canvas.drawBitmap(size, 0, 0, paint);
canvas.drawBitmap( mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath( mPath, mPaint);
canvas.drawPath( circlePath, circlePaint);
}
所有位图解码和调整大小都应在外部完成(在构造函数中或仅当视图调整大小时),无需每次解码和调整大小,每次结果都相同。尝试将解码和调整大小移动到onDraw()外部,如果可能,还应尝试从onDraw()中删除任何对象实例化。onDraw()中应该保留的唯一内容是与图形本身相关的内容。
@Override
protected void onDraw(Canvas canvas) {
paint.setColor(Color.RED);
canvas.drawBitmap(size, 0, 0, paint);
canvas.drawBitmap( mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath( mPath, mPaint);
canvas.drawPath( circlePath, circlePaint);
}