前段时间在项目中用到折线图,于是自己自定义了View,结果在屏幕滑动时,每当自定义View出现时,手机就表现出不顺畅 卡顿的现象。如图所示:
于是通过跟踪判定是该折线图的问题。
onDraw中的代码是:
在drawValue(canvas)中画了有500左右的点和线,耗时比较长。于是进行了以下的优化
@Override
protected void onDraw(Canvas canvas) {
// super.onDraw(canvas);
if(!isDraw) return;
if (bmp == null) {
bmp = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
Canvas bmpCanvas = new Canvas(bmp);
drawXYLine(bmpCanvas);
drawXYDate(bmpCanvas);
drawValue(bmpCanvas);
canvas.drawBitmap(bmp, 0, 0, null);
} else {
canvas.drawBitmap(bmp, 0, 0, null);
}
}
优化后的效果如图: