Andorid绘图Canvas
来源:互联网 发布:书籍排版编辑软件 编辑:程序博客网 时间:2024/06/05 10:42
做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas(new Canvas(BitMap bitMap)),进行绘制,也可以自定义一个View,用它的Canvas。不同的是,Android里没有Graphics,而用 Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
Java代码复制代码以上需要注意的有三点:
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。
Java代码
- @Override
- public void onDraw(Canvas canvas) {
- // 首先定义一个paint
- Paint paint = new Paint();
-
- // 绘制矩形区域-实心矩形
- // 设置颜色
- paint.setColor(Color.WHITE);
- // 设置样式-填充
- paint.setStyle(Style.FILL);
- // 绘制一个矩形
- canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
-
- // 绘空心矩形
- // 设置颜色
- paint.setColor(Color.RED);
- // 设置样式-空心矩形
- paint.setStyle(Style.STROKE);
- // 绘制一个矩形
- canvas.drawRect(new Rect(10, 10, 50, 20), paint);
-
- // 绘文字
- // 设置颜色
- paint.setColor(Color.GREEN);
- // 绘文字
- canvas.drawText(str, 30, 30, paint);
-
- // 绘图
- // 从资源文件中生成位图
- Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
- // 绘图
- canvas.drawBitmap(bitmap, 10, 10, paint);
- }
- @Override
- public void onDraw(Canvas canvas) {
- // 首先定义一个paint
- Paint paint = new Paint();
-
- // 绘制矩形区域-实心矩形
- // 设置颜色
- paint.setColor(Color.WHITE);
- // 设置样式-填充
- paint.setStyle(Style.FILL);
- // 绘制一个矩形
- canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
-
- // 绘空心矩形
- // 设置颜色
- paint.setColor(Color.RED);
- // 设置样式-空心矩形
- paint.setStyle(Style.STROKE);
- // 绘制一个矩形
- canvas.drawRect(new Rect(10, 10, 50, 20), paint);
-
- // 绘文字
- // 设置颜色
- paint.setColor(Color.GREEN);
- // 绘文字
- canvas.drawText(str, 30, 30, paint);
-
- // 绘图
- // 从资源文件中生成位图
- Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
- // 绘图
- canvas.drawBitmap(bitmap, 10, 10, paint);
- }
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。
- Andorid绘图Canvas
- Canvas绘图
- Canvas绘图
- canvas绘图
- 【canvas】Android Canvas绘图详解
- SWT的Canvas绘图
- SWT之Canvas绘图
- canvas 绘图总结
- android 绘图 Canvas
- Canvas绘图学习
- canvas 绘图的步骤
- Android Canvas绘图
- HTML5-Canvas绘图
- html5-Canvas绘图
- Canvas绘图android机器人
- Android--使用Canvas绘图
- Android绘图Canvas、Paint
- Android Canvas绘图详解
- hdu 2674
- 复杂性和用户体验[译]
- poj1719 - Shooting Contest
- 一、图的定义
- 二、图的表示
- Andorid绘图Canvas
- 三、图的遍历
- 暴力破解穷举算法的改进
- 轻松学vim
- 用Mysql怎样实现Oracle中的SYS_CONNECT_BY_PATH函数和START WITH ...CONNECT BY PRIOR方法
- 网络编程常见问题总结 baonenghui【科学】
- 四、图的单源最短路径
- 日期正则
- vba操作两个excel(在一个EXCEL中引用另一个EXCEL的值)