Android_2D绘图的学习Paint,Canvas(一)
来源:互联网 发布:java yield在Runnable 编辑:程序博客网 时间:2024/05/29 15:43
转自于:Android_2D绘图的学习Paint,Canvas(一)。
安卓2D绘图,都是主要涉及到2个类:Paint,Canvas.
一,Paint
Paint画笔,用于指定图形或者文字的颜色,大小等。
常用方法:
setAntiAlias: 设置画笔的锯齿效果。
setColor: 设置画笔颜色
setAlpha: 设置Alpha值
setTextSize: 设置字体尺寸。
setStyle: 设置画笔风格,空心或者实心。
setStrokeWidth: 设置空心的边框宽度。
1,HelloWorld
先从经典的helloworld开始,我们画出一个蓝色,字体大小为20sp的HelloWorld。
效果:
代码:
在构造函数中初始化画笔,然后在onDraw()
方法中调用canvas的drwaText()
方法即可。为了精确,我把View的高度和宽度设为了文字的宽度和高度。这里还涉及到字体偏移的问题,后面再一起讨论。
二,Canvas
Canvas画布,就像黑板一样,可以理解为画画的背景。
常用方法:
drawColor();设置画布背景色
drawLine();线
drawRect()矩形
drawRoundRect();圆角矩形
drawArc();圆弧,三点钟方向为0°
drawCircle();
1,线
先从最简单的几何图形,开始学习canvas的使用方法。
效果:
代码:
设置画笔宽度,画出线条。drawLine()方法中,前两个参数为第一个点坐标(x1,y1),第3,4个参数为第二个点的坐标(x2,y2),最后一个为画笔。
2,矩形
效果:
代码:
设置Paint的Style为空心轨迹,根据2个点的坐标画出矩形,圆角矩形是通过在一个矩形中绘制的。drawRect()方法的参数和线条完全相同,都是根据2个坐标点来绘制的。drawRoundRect()方法参数为矩形,x方向上的圆角,y方向上的圆角,画笔。
3,圆
效果:
代码:
同样设置好画笔后,绘制圆形。参数分别为:圆心的坐标(x1,y1),圆的半径,画笔。
4,圆弧
效果:
代码:
圆弧是在一个矩形中画出,所以我们先初始化一个矩形,然后再在这个矩形中,绘制圆弧。drawArc()方法参数分别为:矩形,起始角度(3点钟方向为0°),覆盖的角度,是否连接圆心,画笔。
5,图片
原始图片:
效果:
代码:
将图片拷贝到drawable文件夹下,生成bitmap对象,然后通过canvas绘制。
drawBitmap()方法参数分别为:bitmap对象,x方向偏移量,y方向偏移量,画笔。
三,Path
通过Path这个类,我们可以画出三角形,梯形等多边形。
常用方法:
moveTo();设置地点
lineTo();连接2点
close();连接起点和终点
1,三角形
效果:
代码:
通过建立一个三角形路径,在画布上绘制出。
- Android_2D绘图的学习Paint,Canvas(一)
- Android_2D绘图的学习Paint,Canvas(一)
- Android_2D绘图的学习Paint,Canvas(二)
- Android_2D绘图的学习Paint,Canvas(三)
- android_绘图的基础canvas,Paint
- Android绘图Canvas、Paint
- Canvas、Paint绘图
- Android Canvas,Paint 绘图
- Android:视图绘制(一) ------基本的绘图操作Paint和Canvas
- android 用paint,canvas 绘图
- android之绘图——Canvas,bitmap,Paint的理解
- Android绘图基础:Canvas、Paint、Path的简单使用
- Android绘图基础:Canvas、Paint等的使用
- android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
- Android绘图篇-01 Canvas和Paint的基础使用
- android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
- Canvas绘图的使用(一)
- Android 绘图(一) Paint
- Android ShapeDrawable
- 打造先进的内存KV数据库-3 最终选择-C & B-Tree
- 理解LSTM
- 返回字符串按顺序的非连续子串的数目
- C#操作Access类
- Android_2D绘图的学习Paint,Canvas(一)
- Xcode运行报的那些错
- 微软面试:输出整型数组任意两个元素差的绝对值的最小值
- Android属性动画详解(上),初始属性动画的基本用法
- 结构体的基本认识
- 1226
- S5PV210环境搭建:arm-linux-gcc: 没有那个文件或目录
- 荷兰国旗问题
- leetcode:82. Remove Duplicates from Sorted List II(Java)解答