要保存 Canvas 画的图案等下次 onDraw 直接复用,可以通过以下几种方法:

  1. 使用 Bitmap:在 onDraw 方法中创建一个 Bitmap 对象,并将 Bitmap 对象作为 canvas 的绘图目标,然后将绘制的图案保存到 Bitmap 中。下次 onDraw 方法调用时,直接将 Bitmap 绘制到 canvas 上即可复用图案。

示例代码:

// 在 onDraw 方法中创建 Bitmap 对象
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);

// 绘制图案到 bitmap
canvas.drawXXX(...);

// 将 bitmap 绘制到 canvas 上
canvas.drawBitmap(bitmap, 0, 0, null);
  1. 使用 Path:在 onDraw 方法中创建一个 Path 对象,并将绘制的图案保存到 Path 中。下次 onDraw 方法调用时,直接将 Path 绘制到 canvas 上即可复用图案。

示例代码:

// 在 onDraw 方法中创建 Path 对象
Path path = new Path();

// 绘制图案到 path
path.xxxTo(...);

// 将 path 绘制到 canvas 上
canvas.drawPath(path, paint);
  1. 使用自定义 View 的成员变量:在自定义 View 中定义一个成员变量,用来保存绘制的图案。在 onDraw 方法中,直接将成员变量绘制到 canvas 上即可复用图案。

示例代码:

// 在自定义 View 中定义成员变量
private Path path;

// 在 onDraw 方法中绘制图案并保存到成员变量中
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // 初始化 path
    if (path == null) {
        path = new Path();
        path.xxxTo(...);
    }

    // 将 path 绘制到 canvas 上
    canvas.drawPath(path, paint);
}

以上几种方法都可以在下次 onDraw 方法调用时直接复用图案,具体选择哪种方法取决于你的需求和实现方式。

Android Canvas 画图复用:Bitmap、Path、自定义View 详解

原文地址: https://www.cveoy.top/t/topic/lH8Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录