Android之Graphics 简单绘制几何图形
2014-12-11 13:35
190 查看
Android之Graphics 简单绘制几何图形
如果对javaSE 里面2D图形编程有点了解的人 ,估计搞android几何绘图不是什么难事,主用用到API中canvas(画布)Paint类 主要用此类来进行绘画(只讲简单的图形绘制,后期会用模仿做一个画图工具类似于腾讯QQ涂鸦)以下是Canvas常用方法
具体更详细部分可参考API canvas
Canvas(): 创建一个空的画布,可以使用setBitmap()方法来设置绘制具体的画布。
Canvas(Bitmap bitmap): 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不得为null。
Canvas(GL gl): 在绘制3D效果时使用,与OpenGL相关。
drawColor: 设置Canvas的背景颜色。
setBitmap: 设置具体画布。
clipRect: 设置显示区域,即设置裁剪区。
isOpaque:检测是否支持透明。
rotate: 旋转画布
setViewport: 设置画布中显示窗口。
skew: 设置偏移量。
drawRect 画矩形
drawCicle 画圆形
drawOval 画椭圆
drawPath 画直线
drawPoin 绘制点
画图我们一般会设置画笔的颜色 粗细 等等这时我们要用到Paint类
只要对Paint属性进行设置 就可以得到很多你想要的效果 以下是常用的方法介绍
setAntiAlias: 设置画笔的锯齿效果。
setColor: 设置画笔颜色
setARGB: 设置画笔的a,r,p,g值。
setAlpha: 设置Alpha值
setTextSize: 设置字体尺寸。
setStyle: 设置画笔风格,空心(Style.STROKE)或者实心(Style.FILL)。
setStrokeWidth: 设置空心的边框宽度。
getColor: 得到画笔的颜色
getAlpha: 得到画笔的Alpha值。
以下结合这2个类进行简单的几何图形绘制
在绘制之前对canvas中坐标进行简单解释下 这个跟javaSE有点区别
很多图形绘制会用到 left top right bottom 这个四个参数根据这四个参数来确定图形的坐标位置
下面通过对上面的图对四个参数进行解释下
left:既A点 就是A的坐标原点位置
right:既B点 就是B到坐标原点位置
bottom:既C点 就是C到坐标原点的位置
top:既D点 就是D到坐标原点的位置 理解这个之后画图就相当简单了
以下是个常见简单几何图形绘制
效果图如下
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE); //设置画布背景颜色
Paint paint = new Paint();
paint.setColor(Color.RED);//设置画笔颜色
paint.setStrokeWidth(4); //
paint.setStyle(Style.STROKE);//设置填充类型
// 画圆形
canvas.drawCircle(40, 40, 40, paint);
// 画正方形
canvas.drawRect(0, 90, 80, 170, paint);
// canvas.drawRect(left, top, right, bottom, paint)
// 画长方形
canvas.drawRect(0, 180, 100, 240, paint);
// 画椭圆形
RectF rectF = new RectF(0, 250, 120, 320);
canvas.drawOval(rectF, paint);
// 画三角形
Path path = new Path();
path.reset();
path.moveTo(60, 330);// 开始坐标 也就是三角形的顶点
// path.lineTo(60, 330);
path.lineTo(0, 390);
path.lineTo(120, 390);
path.close();
canvas.drawPath(path, paint);
//画梯形
Path path2 = new Path();
path2.reset();
path2.moveTo(30, 400); //左顶点 也即起始点
path2.lineTo(90, 400); //左顶点
path2.lineTo(120, 440); //右底部
path2.lineTo(0, 440); // 左底部
canvas.drawPath(path2, paint);
等同下面===========================
path2.moveTo(0, 440);
path2.lineTo(120, 440);
path2.lineTo(90, 400);
path2.lineTo(30, 400);
path2.lineTo(0, 440);
画三角形与画梯形的时候要注意 因为只能画多条线 再把根据几条线的坐标 相连 就构成该图形,一定要注意点坐标的顺序今天就写到这里,下次继续
不为别的只求一起进步
如果对javaSE 里面2D图形编程有点了解的人 ,估计搞android几何绘图不是什么难事,主用用到API中canvas(画布)Paint类 主要用此类来进行绘画(只讲简单的图形绘制,后期会用模仿做一个画图工具类似于腾讯QQ涂鸦)以下是Canvas常用方法
具体更详细部分可参考API canvas
Canvas(): 创建一个空的画布,可以使用setBitmap()方法来设置绘制具体的画布。
Canvas(Bitmap bitmap): 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不得为null。
Canvas(GL gl): 在绘制3D效果时使用,与OpenGL相关。
drawColor: 设置Canvas的背景颜色。
setBitmap: 设置具体画布。
clipRect: 设置显示区域,即设置裁剪区。
isOpaque:检测是否支持透明。
rotate: 旋转画布
setViewport: 设置画布中显示窗口。
skew: 设置偏移量。
drawRect 画矩形
drawCicle 画圆形
drawOval 画椭圆
drawPath 画直线
drawPoin 绘制点
画图我们一般会设置画笔的颜色 粗细 等等这时我们要用到Paint类
只要对Paint属性进行设置 就可以得到很多你想要的效果 以下是常用的方法介绍
setAntiAlias: 设置画笔的锯齿效果。
setColor: 设置画笔颜色
setARGB: 设置画笔的a,r,p,g值。
setAlpha: 设置Alpha值
setTextSize: 设置字体尺寸。
setStyle: 设置画笔风格,空心(Style.STROKE)或者实心(Style.FILL)。
setStrokeWidth: 设置空心的边框宽度。
getColor: 得到画笔的颜色
getAlpha: 得到画笔的Alpha值。
以下结合这2个类进行简单的几何图形绘制
在绘制之前对canvas中坐标进行简单解释下 这个跟javaSE有点区别
很多图形绘制会用到 left top right bottom 这个四个参数根据这四个参数来确定图形的坐标位置
下面通过对上面的图对四个参数进行解释下
left:既A点 就是A的坐标原点位置
right:既B点 就是B到坐标原点位置
bottom:既C点 就是C到坐标原点的位置
top:既D点 就是D到坐标原点的位置 理解这个之后画图就相当简单了
以下是个常见简单几何图形绘制
效果图如下
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE); //设置画布背景颜色
Paint paint = new Paint();
paint.setColor(Color.RED);//设置画笔颜色
paint.setStrokeWidth(4); //
paint.setStyle(Style.STROKE);//设置填充类型
// 画圆形
canvas.drawCircle(40, 40, 40, paint);
// 画正方形
canvas.drawRect(0, 90, 80, 170, paint);
// canvas.drawRect(left, top, right, bottom, paint)
// 画长方形
canvas.drawRect(0, 180, 100, 240, paint);
// 画椭圆形
RectF rectF = new RectF(0, 250, 120, 320);
canvas.drawOval(rectF, paint);
// 画三角形
Path path = new Path();
path.reset();
path.moveTo(60, 330);// 开始坐标 也就是三角形的顶点
// path.lineTo(60, 330);
path.lineTo(0, 390);
path.lineTo(120, 390);
path.close();
canvas.drawPath(path, paint);
//画梯形
Path path2 = new Path();
path2.reset();
path2.moveTo(30, 400); //左顶点 也即起始点
path2.lineTo(90, 400); //左顶点
path2.lineTo(120, 440); //右底部
path2.lineTo(0, 440); // 左底部
canvas.drawPath(path2, paint);
等同下面===========================
path2.moveTo(0, 440);
path2.lineTo(120, 440);
path2.lineTo(90, 400);
path2.lineTo(30, 400);
path2.lineTo(0, 440);
画三角形与画梯形的时候要注意 因为只能画多条线 再把根据几条线的坐标 相连 就构成该图形,一定要注意点坐标的顺序今天就写到这里,下次继续
不为别的只求一起进步
相关文章推荐
- Android图形绘制之——简单的几何图形
- Android游戏Graphics绘图之几何图形绘制
- Android中绘制简单几何图形和路径Path
- Android 简单图形绘制
- opencv for python 之 创建图片绘制简单几何图形
- Android绘制简单图形
- 绘制几何图形——使用android.graphics类
- 绘制几何图形——使用android.graphics类
- android自定义View绘制几何图形
- android绘制图形:android.graphics.drawable.shapes
- android之简单图形绘制
- 【Android开发】图形图像处理技术-绘制几何图形
- Android简明开发教程十四:Context Menu 绘制几何图形
- SQL也疯狂:MySQL绘制简单几何图形(2013-04-12)
- android绘制图形:android.graphics.drawable
- 绘制几何图形——使用android.graphics类
- OpenGL_Qt学习笔记之_02(绘制简单平面几何图形)
- iOS开发的2D绘制--CoreGraphics的简单使用二(画图形)
- python-opencv笔记 图像的读取和简单几何图形绘制
- android绘制图形:android.graphics.drawable.Drawable