摘要:本文将带你了解Android应用开发Android 基础图形绘制API常用方法,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android 基础图形绘制API常用方法,希望本文对大家学Android有所帮助。
Canvas类常用的方法:
//画点(使用指定的Paint填充整个Canvas )
drawPoint(float x, float y, Paint paint)
//画线(多条)
drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
drawLine(s)
//绘制区域
drawRect(RectF rect, Paint paint)
drawRoundRect 绘制一个圆角矩形。
//绘制图片
drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)
drawPicture 在指定的矩形中绘制一个Picture对象。
//渲染文本
drawText(String text, float x, floaty, Paint paint)
drawPosText 绘制指定了每一个字符的偏移量的文本字符串。
drawTextOnPath 在一个指定的path上绘制文本。
//绘制路径
drawPath(Path path, Paint paint)
//画椭圆
drawOval(RectF oval, Paint paint)
//画圆
drawCircle(float cx, float cy, float radius,Paint paint)
//画弧
drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
drawVertices 绘制一系列三角形面片,通过一系列顶点来指定它们。
drawARGB / drawRGB / drawColor 使用单一的颜色填充画布。
drawBitmapMesh 使用一个mesh(网)来绘制一个位图,它可以通过移动网中的点来操作目标的外观。
下面通过例子详细说明上述方法:
1. 画点 drawPoint
(1) 单点:
drawPoint(float x, float y, Paint paint)
参数:
float X:点的X坐标
float Y:点的Y坐标
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(30);
canvas.drawPoint(100, 100, paint);
(2) 填充整个Canvas:
drawPoint(Paint paint)
参数:
Paint paint:填充Canvas的画笔
Paint paint = new Paint();
paint.setColor(Color.BLUE);
canvas.drawPaint(paint);
(3) 多个点 :
public void drawPoints(float[] pts, Paint paint)
参数:
float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3, y3, ……};
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(30);
float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
canvas.drawPoints(points, paint);
public void drawPoints(float[] pts, int offset, int count, Paint paint)
参数:
float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3, y3, ……};
int offset: 点的集合 pts 数组中省去不绘制的数的个数,两个数为一个点;可以为奇数,但绘制的点会位置不正确;
count: 参与绘制的 pts 数组中数的个数,两个数为一个点,必需为偶数;
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(30);
float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
canvas.drawPoints(points, 2, 4, paint);
如果将 offset 改为 1,即:
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(30);
float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
canvas.drawPoints(points, 1, 4, paint);
效果如下:
2. 画直线 drawLine()
(1) 一条直线:
public void drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
参数:
float startX : 起点横坐标;
float startY : 起点纵坐标;
float stopX : 终点横坐标;
float stopY : 终点纵坐标;
Paint paint : 画笔;
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(20);
canvas.drawLine(30, 30, 150, 150, paint);
(1) 多条直线:
public void drawLines(float[] pts, Paint paint)
参数:
float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3, y3, ……};
Paint paint : 画笔;
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(20);
float[] points = new float[]{30, 30, 150, 150, 250, 250, 400, 400};
canvas.drawLines(points, paint);
public void drawLines(float[] pts, int offset, int count, Paint paint)
参数:
float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3, y3, ……};
int offset: 点的集合 pts 数组中省去不绘制的数的个数,两个数为一个点;可以为奇数,但绘制的点会位置不正确;
count: 参与绘制的 pts 数组中数的个数,两个数为一个点,必需为偶数;
Paint paint : 画笔;
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(20);
float[] points = new float[]{30, 30, 150, 150, 250, 250, 400, 400};
canvas.drawLines(points, paint);
3. 画矩形 drawRect
public void drawRect(RectF rect, Paint paint)
参数:
RectF rect 矩形区域
Paint paint : 画笔;
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(20);
paint.setStyle(Paint.Style.STROKE);
RectF rectF = new RectF();
rectF.left = 50;
rectF.top = 50;
rectF.right = 400;
rectF.bottom = 200;
canvas.drawRect(rectF, paint);
4. 画椭圆 drawOval
public void drawRect(RectF rect, Paint paint)
参数:
RectF rect 矩形区域, 椭圆的绘制是在一个矩形区域完成的
Paint paint : 画笔;
public void drawOval(float left, float top, float right, float bottom, Paint paint)
Paint paint = new Paint(); //椭圆画笔
paint.setColor(Color.GREEN);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
Paint paint1 = new Paint(); //椭圆所在矩形区域画笔
paint1.setColor(Color.RED);
paint1.setStrokeWidth(5);
paint1.setStyle(Paint.Style.STROKE);
RectF rectF = new RectF();
rectF.left = 50;
rectF.top = 50;
rectF.right = 400;
rectF.bottom = 200;
canvas.drawRect(rectF, paint1);//画出矩形,为了更加形象显示椭圆的绘制规则
canvas.drawOval(rectF, paint);//绘制椭圆
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号