Android 高级绘图 Android 高级绘图高级画布绘图我们已经介绍了 Canvas , 在那里, 已经学习了如何创建自己的 View 。在第 7 章中也使用了 Canvas 来为 MapView 标注覆盖。画布(Canvas) 是图形编程中一个很普通的概念,通常由三个基本的绘图组件组成: Canvas 提供了绘图方法,可以向底层的位图绘制基本图形。 Paint 也称为" 刷子", Paint 可以指定如何将基本图形绘制到位图上。 Bitmap 绘图的表面。 Android 绘图 API 支持透明度、渐变填充、圆边矩形和抗锯齿。遗憾的是, 由于资源限制, 它还不支持矢量图形, 它使用的是传统光栅样式的重新绘图。这种光栅方法的结果是提高了效率,但是改变一个 Paint 对象不会影响已经画好的基本图形,它只会影响新的元素。提示: 如果你拥有 Windows 开发背景, 那么 Android 的 2D 绘图能力大致相当于 GDI+ 的能力。 1. 可以画什么? Canvas 类封装了用作绘图表面的位图;它还提供了 draw* 方法来实现设计。下面的列表提供了对可用的基本图形的简要说明,但并没有深入地探讨每一个 draw 方法的详细内容: drawARGB / drawRGB / drawColor 使用单一的颜色填充画布。 drawArc 在一个矩形区域的两个角之间绘制一个弧。 drawBitmap 在画布上绘制一个位图。可以通过指定目标大小或者使用一个矩阵来改变目标位图的外观。 drawBitmapMesh 使用一个 mesh( 网) 来绘制一个位图, 它可以通过移动网中的点来操作目标的外观。 drawCircle 以给定的点为圆心,绘制一个指定半径的圆。 drawLine(s) 在两个点之间画一条( 多条) 直线。 drawOval 以指定的矩形为边界,画一个椭圆。 drawPaint 使用指定的 Paint 填充整个 Canvas drawPath 绘制指定的 Path 。 Path 对象经常用来保存一个对象中基本图形的集合。 drawPicture 在指定的矩形中绘制一个 Picture 对象。 drawPosText 绘制指定了每一个字符的偏移量的文本字符串。 drawRect 绘制一个矩形。 drawRoundRect 绘制一个圆角矩形。 drawText 在 Canvas 上绘制一个文本串。文本的字体、大小和渲染属性都设置在用来渲染文本的 Paint 对象中。 drawTextOnPath 在一个指定的 path 上绘制文本。 drawVertices 绘制一系列三角形面片,通过一系列顶点来指定它们。这些绘图方法中的每一个都需要指定一个 Paint 对象来渲染它。在下面的部分中, 将学习如何创建和修改 Paint 对象, 从而在绘图中完成大部分工作。 Paint 中完成工作 Paint 类相当于一个笔刷和调色板。它可以选择如何使用上面描述的 dra w 方法来渲染绘制在画布上的基本图形。通过修改 Pain t 对象, 可以在绘图的时候控制颜色、样式、字体和特殊效果。最简单地, setColor 可以让你选择一个 Paint 的颜色,而 Paint 对象的样式( 使用 setStyle 控制) 则可以决定是绘制绘图对象的轮廓(STROKE) ,还是只填充每一部分(FILL) ,或者是两者都做(STROKE_AND_FILL) 除了这些简单的控制之外, Paint 类还支持透明度,另外, 它也可以通过使用各种各样的阴影、过滤器和效果进行修改, 从而提供由更丰富的、复杂的画笔和颜料组成的调色板。 Android SDK 包含了一些非常好的实例,它们说明了 Pain t 类中可用的大部分功能。你可以在 API demos 的 graphics 子目录中找到它们: sdk root folder]\samples\ApiDemos\\android\samples\graphics 在下面的部分中,将学习和使用其中的部分功能。这些部分只是简单地罗列了它们能实现的效果( 例如渐变和边缘浮雕), 而没有详细地列出所有可能的情况。使用透明度 Android 中的所有颜色都包含了一个不透明组件(alpha 通道)。当创建一个颜色的时候, 可以使用 argb 或者 parseColor 方法来定义它的 alpha 值,如下所示: Java 代码: // 使用红色,并让它 50% 透明 int opacity = 127; int intColor = (opacity, 255, 0, 0); int parsedColor = ("#7FFF0000"); 复制代码或者,
Android 高级绘图 来自淘豆网m.daumloan.com转载请标明出处.