首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android -画布引发怀疑

Android -画布引发怀疑
EN

Stack Overflow用户
提问于 2011-10-08 15:24:39
回答 3查看 585关注 0票数 1

我正在查看Google的一个示例应用程序,它使用画布处理触摸绘图:

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

我有几个疑问:

  1. 我无法理解画布的角色和位图的角色。
  2. drawPoint函数中,我无法理解这个代码片段:

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-08 15:38:25

画布与位图

Bitmap是其名称所表示的:作为位图的普通图像。Canvas类是位图的编辑器。如果使用它来更改位图数据,它将保存所有绘图方法。此原则的行为类似于共享首选项(如果您已经使用过它们),您有一个包含首选项的SharedPreferences类,以及一个用于更改内容的Editor类。

绘制圆圈

此代码执行类似于双缓冲的操作。drawPoint()基本上是在mBitmap对象中画一个圆圈。但是这个位图对象还没有可见。它存在于记忆中。当调用onDraw()时,它有一个表示视图绘图面的Canvas参数。drawBitmap()在这里所做的就是使用内存中准备好的位图,并将其绘制到视图中,以使其可见。

使用过的画布mCanvas绑定到mBitmap内部的onSizeChanged()

票数 2
EN

Stack Overflow用户

发布于 2011-10-08 15:36:51

  1. 来自Android: http://developer.android.com/reference/android/graphics/Canvas.html类保存“绘制”调用。要绘制一些东西,您需要4个基本组件:保存像素的http://developer.android.com/reference/android/graphics/Bitmap.html、承载绘图调用的画布(写入位图)、绘图原语(例如Rect、Path、text、bitmap)和油漆(用于描述绘图的颜色和样式)。
  2. 我猜你指的是这个片段: @重写受保护的无效onDraw(画布){ if (mBitmap != null) { canvas.drawBitmap(mBitmap,0,0,null);} 它看起来像一个继承的onDraw方法的重写,默认情况下它很可能“什么都不做”,因此实际上给它一些行为的重写,在这种情况下,给出一个非空位图实例,让画布绘制它。
票数 0
EN

Stack Overflow用户

发布于 2011-10-08 15:38:03

如果你去看开发人员参考资料:

drawBitmap(位图位图,浮动左,浮动顶部,油漆) 绘制指定的位图,其上/左角位于(x,y),使用指定的油漆,由当前矩阵.转换。

如果您看到类中不存在mBitmap,那是因为var来自于来自另一个活动的扩展。

画布还具有一个setBitmap(位图位图)函数。那么解决方案就是在画布上画,如果你已经设置了一个位图对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7697773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档