gpt4 book ai didi

Android——canvas绘图疑惑

转载 作者:行者123 更新时间:2023-11-29 22:19:16 25 4
gpt4 key购买 nike

我正在查看来自 Google 的示例应用程序之一,它使用 Canvas 处理触摸绘图:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchPaint.html

我有几个疑问:

  1. 我无法理解 Canvas 的作用与作用的位图。

  2. drawPoint 函数中,我无法理解这段代码:

mCanvas.drawCircle(x, y, radius, mPaint);
mRect.set((int) (x - radius - 2), (int) (y - radius - 2),
(int) (x + radius + 2), (int) (y + radius + 2));
invalidate(mRect);

如果圆已经绘制到上面的 Canvas 中,那么在给出以下代码的onDraw 函数中会发生什么:

canvas.drawBitmap(mBitmap, 0, 0, null);

最佳答案

Canvas 与位图

A Bitmap 顾名思义:作为位图的普通图像。 Canvas 类是位图的编辑器。你用它来改变位图数据,它拥有所有的绘图方法。此原则的行为类似于共享首选项(如果您已经使用过它们),您有一个保存首选项的 SharedPreferences 类和一个 Editor 改变事物的类。

画圆圈

此代码执行类似于 double buffering 的操作. drawPoint() 基本上是在 mBitmap 对象中绘制一个圆圈¹。 但是这个位图对象还不可见。它存在于内存中。当 onDraw() 被调用时,它有一个 Canvas 参数代 TableView 的绘图表面。 drawBitmap() 在这里所做的就是使用内存中准备好的位图并将其绘制在 View 图形表示中以使其可见。

¹ 使用的 Canvas mCanvas 绑定(bind)到 onSizeChanged() 内的 mBitmap

关于Android——canvas绘图疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com