Android绘图操作onDraw

简介:

做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的 Canvas。不同的时,Android里没有Graphics,而用 Paint代之,当然用法也稍有不同。以下是自定义View的一段代码: 
@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,还是我们有理解到坐标点的意义。

Android绘图操作onDraw | 自由库 http://www.ziyouku.com/archives/android-operating-ondraw-drawing.html

本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/articles/2378393.html ,如需转载请自行联系原作者
相关文章
|
8月前
|
数据库 Android开发 数据库管理
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
51 0
|
4月前
|
Android开发
[Android]视图的控触操作-MotionEvent
[Android]视图的控触操作-MotionEvent
31 0
|
4月前
|
算法 Java 数据安全/隐私保护
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
69 0
|
8月前
|
数据库 Android开发 数据库管理
Android 使用Room操作数据库进行数据库版本的升级和迁移
Android 使用Room操作数据库进行数据库版本的升级和迁移
427 0
|
8月前
|
存储 数据库 Android开发
Android 使用Room操作SQLite数据库让其变得无比高效和简洁(前一篇文章的完善)
Android 使用Room操作SQLite数据库让其变得无比高效和简洁(前一篇文章的完善)
115 0
|
8月前
|
数据库 Android开发 数据库管理
Android 使用Room操作SQLite数据库让其变得无比高效和简洁(教程一)
Android 使用Room操作SQLite数据库让其变得无比高效和简洁(教程一)
135 0
|
8月前
|
Java Android开发
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
51 0
|
8月前
|
API 数据库 Android开发
Android SQLite数据库中基础的增删改查操作以及API的详解
Android SQLite数据库中基础的增删改查操作以及API的详解
65 0
|
8月前
|
JavaScript 前端开发 Android开发
uniapp+vue+uview适配安卓4.4项目实现简单登录和操作页面
uniapp+vue+uview适配安卓4.4项目实现简单登录和操作页面
171 0
|
9月前
|
Android开发 iOS开发 Windows
无影产品动态|iOS & Android客户端6.0.0版本发布,提升触控灵敏度,操作体验更丝滑
无影ios & Android客户端6.0.0版本发布!移动端触控体验更舒适,用户操作更便捷,一起来看看!
676 0
无影产品动态|iOS & Android客户端6.0.0版本发布,提升触控灵敏度,操作体验更丝滑