`

Canvas和Paint常用方法

 
阅读更多

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html

1、首先说一下canvas类:

Class Overview

The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing). 

这个类相当于一个画布,你可以在里面画很多东西;

我们可以把这个Canvas理解成系统提供给我们的一块内存区域(但实际上它只是一套画图的API,真正的内存是下面的Bitmap),而且它还提供了一整套对这个内存区域进行操作的方法,所有的这些操作都是画图API。也就是说在这种方式下我们已经能一笔一划或者使用Graphic来画我们所需要的东西了,要画什么要显示什么都由我们自己控制。

 

这种方式根据环境还分为两种:一种就是使用普通View的canvas画图,还有一种就是使用专门的SurfaceView的canvas来画图。两种的主要是区别就是可以在SurfaceView中定义一个专门的线程来完成画图工作,应用程序不需要等待View的刷图,提高性能。前面一种适合处理量比较小,帧率比较小的动画,比如说象棋游戏之类的;而后一种主要用在游戏,高品质动画方面的画图。

下面是Canvas类常用的方法:

 

drawRect(RectF rect, Paint paint) //绘制区域,参数一为RectF一个区域 

drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径对象

drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)  //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。

drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint 画刷对象。

drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。

drawText(String text, float x, floaty, Paint paint)  //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。

drawOval(RectF oval, Paint paint)//画椭圆,参数一是扫描区域,参数二为paint对象;

drawCircle(float cx, float cy, float radius,Paint paint)// 绘制圆,参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象;

drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)//画弧,

参数一是RectF对象,一个矩形区域椭圆形的界限用于定义在形状、大小、电弧,参数二是起始角(度)在电弧的开始,

参数三扫描角(度)开始顺时针测量的,参数四是如果这是真的话,包括椭圆中心的电弧,并关闭它,如果它是假这将是一个弧线,参数五是Paint对象;

还要理解一个paint类:

 

Class Overview

The Paint class holds the style and color information about how to draw geometries, text and bitmaps. 

paint类拥有风格和颜色信息如何绘制几何学,文本和位图。

 

 

Paint 代表了Canvas上的画笔、画刷、颜料等等;

 

Paint类常用方法:

setARGB(int a, int r, int g, int b) // 设置 Paint对象颜色,参数一为alpha透明值

setAlpha(int a) // 设置alpha不透明度,范围为0~255

setAntiAlias(boolean aa) // 是否抗锯齿

setColor(int color)  // 设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义

setTextScaleX(float scaleX)  // 设置文本缩放倍数,1.0f为原始

setTextSize(float textSize)  // 设置字体大小

setUnderlineText(booleanunderlineText)  // 设置下划线

分享到:
评论

相关推荐

    自定义view(Paint和Canvas)

    自定义view:简单了解Paint常用设置,Canvas的常用方法;

    Android中Paint类和Canvas类的方法汇总

    Paint类的常用的方法 1.setColor方法,用于设置画笔的颜色, public void setColor(int color)//参数color为颜色值,也可以使用Color类定义的颜色 Color.BLACK:黑色 Color.BLUE:蓝色 Color.CYAN:青绿色 Color.DKGRAY...

    Android绘图

    Android的Canvas和Paint对象的使用实例。 Canvas类主要实现了屏幕的绘制过程

    Android学习教程之2D绘图基础及绘制太极图

    其中Color和Bitmap是很常用的类,本文主要要讲的是Canvas和Paint。顾名思义就是画布和画笔。 Canvas类 Canvas即画布,我们需要做的就是使用之前设置好的Paint来绘制图形。系统通过 Canvas 为我们提供了一些基础的...

    Android 使用Canvas在图片上绘制文字的方法

    【Android】Android中 Paint 字体、粗细等属性的一些设置 在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: Paint mp = new paint(); mp.setTypeface(Typeface....

    Android绘图常用方法汇总

    Android绘图常用方法有哪些,下面一一为大家列举: 1、有关画笔(Paint)的方法 Paint mPaint= new Paint(); mPaint.setAntiAlias(true); // 消除锯齿 mPaint.setStrokeWidth(mCircleWidth); // 设置圆环的宽度 ...

    Android的图像浏览与图形绘制程序设计PPT

    (1)熟悉Bitmap、BitmapFactory类的功能及其...(2)熟悉Paint、Canvas、Color、Path等类的功能、主要方法及其典型应用 (3)学会应用图形图像类设计图片浏览器 (4)学会应用图形图像类绘制几何图形和多种形式的路径

    《Android自定义组件开发详解》

    2.5、Canvas类与Paint类 34 2.5.1 绘图概述 34 2.5.2 Paint类 34 2.5.3 Canvas类 39 2.6 练习作业 63 第三章 使用Graphics2D实现动态效果 64 3.1 概述 64 3.2 invalidate()方法 65 3.3 坐标转换 69 3.4 剪切区...

    Android自定义view 你所需要知道的基本函数总结

    首先 往Canvas上面draw需要一个Paint。 画笔常用的函数有哪些呢。由于木有调试环境,函数基本上默写,有错请评论提出,蟹蟹! Paint p = new Paint(); //设置画笔的颜色 p.setColor(Color.parseColor(#2EA4F2)); /...

    Android刮刮卡实现原理与代码讲解

    * Paint的一些常用的属性 * Path的一些方法 刮刮卡的实现原理图   这里用到了13中模式中的DstOut这种模式。 对于这幅图而言,首先绘制Dst,设置xfermode,再绘制Src。 刮刮卡的实现原理步骤 1.绘制显示中奖的...

    Android入门之画图详解

    2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多方法操作Bitamp的平台; 3.Paint,与Canvas紧密联系,是”画板”上的笔刷工具,也用于设置View控件上的样式; 4.Drawable,如果说前三...

    贪吃蛇java课程设计--贪吃蛇程序设计.doc

    " "Canvas paintCanvas; " "JLabel labelScore; " "SnakeModel snakeModel = null; " "public static final int canvasWidth = 600; " "public static final int canvasHeight = 400; " "public static final int ...

    简单实现Android刮刮卡效果

    通过使用Xfermode将绘制的图形的像素和Canvas上对应位置的像素按照一定的规则进行混合,形成新的像素,再更新到Canvas中形成最终的图形,使用的时候都是通过Paint.setXfermode来实现。 二、混合模式分类 ...

    疯狂Android讲义源码

     7.2.1 Android绘图基础:Canvas、  Paint等 263  7.2.2 Path类 267  7.2.3 绘制游戏动画 270  7.3 图形特效处理 278  7.3.1 使用Matrix控制变换 278  7.3.2 使用drawBitmapMesh扭曲  图像 282  7.3.3 使用...

    疯狂Android讲义.part2

    7.2.1 Android绘图基础:Canvas、 Paint等 263 7.2.2 Path类 267 7.2.3 绘制游戏动画 270 7.3 图形特效处理 278 7.3.1 使用Matrix控制变换 278 7.3.2 使用drawBitmapMesh扭曲 图像 282 7.3.3 使用Shader填充图形 285...

    疯狂Android讲义.part1

    7.2.1 Android绘图基础:Canvas、 Paint等 263 7.2.2 Path类 267 7.2.3 绘制游戏动画 270 7.3 图形特效处理 278 7.3.1 使用Matrix控制变换 278 7.3.2 使用drawBitmapMesh扭曲 图像 282 7.3.3 使用Shader填充图形 285...

    Android实例代码

    15.2、Android的常用传感器:方向传感器Orientation; 磁场传感器Magnetic Field; 温度传感器Temperature; 光传感器Light; 压力传感器Pressure; 第16章、GPS应用开发 16.1、支持GPS的核心API: 16.2、获取...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    15.2、Android的常用传感器:方向传感器Orientation; 磁场传感器Magnetic Field; 温度传感器Temperature; 光传感器Light; 压力传感器Pressure; 第16章、GPS应用开发 16.1、支持GPS的核心API: 16.2、获取...

Global site tag (gtag.js) - Google Analytics