Andriod中绘(画)图----Canvas的使用详解
来源:互联网 发布:js渐变效果 编辑:程序博客网 时间:2024/06/08 08:13
2 Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多方法操作Bitamp的平台;
3 Paint,与Canvas紧密联系,是"画板"上的笔刷工具,也用于设置View控件上的样式;
4 Drawable,如果说前三者是看不见地在内存中画图(虚拟的),那么Drawable就是把前三者绘图结果表现出来的接口(真实的)。
Drawable多个子类,例如:位图(BitmapDrawable)、图形(ShapeDrawable)、图层(LayerDrawable)等。
以上引自于hellogv的《Android入门第十四篇之画图》
我们打个简单的比方吧:
Paint 就是画笔
Bitmap 就是画布
Canvas 就是画家
于是,画家可以通过画笔可以在画布上进行任何的画画。
Canvas的两种使用情形,从Canvas对象的获得角度分析:
1、 自定义View和自定义SurfaceView中获得Canvas对象
由于自定义View和SurfaceView在显示界面中已经获得了显示区域,canvas对象只不过是在其显示(绘画)区域进行界面布局
的设计,当操作完毕后,系统会显示canvas的操作结果。
自定义View的绘图方法为:
- //存在canvas对象,即存在默认的显示区域
- @Override
- public void draw(Canvas canvas) {
- //canvas绘图
- }
SurfaceView的绘图方法为,例如:
- SurfaceView surfaceView = new MySurfaceView() ; //创建一个Surface对象
- SurfaceHolder surfaceHolder = surfaceView. getHolder() ; //获得SurfaceHolder对象
- Canvas canvas = surfaceHolder.lockCanvas() ; //获得canvas对象
- //进行绘图操作
- surfaceHolder.unlockCanvasAndPost(canvas) ; //释放canvas锁,并且显示视图
2、 在其他情形下,我们需要通过代码创建一个Canvas对象,并且在绘画成功后,将该画图区域转换为Drawable图片
或者通过setBitmap(bitmap)显现出来。一般步骤为:
- //创建一个的Bitmap对象
- Bitmap bitmap = Bitmap.createBitmap(200, 100, Config.ARGB_8888) ;
- //创建一个canvas对象,并且开始绘图
- Canvas canvas = new Canvas (bitmap) ;
- ImageView imgView = new ImageView(this) ; //或者其他可以设置背景图片的View控件
- //为ImageView设置图像
- //将Bitmap对象转换为Drawable图像资
- Drawable drawable = new BitmapDrawable(bitmap) ;
- imgView .setBackgroundDrawable(drawable) ;
- 或者简单点: imgView .setImageBitmap(bitmap);
这两种方式都可以显示我们的绘图。
转载自:http://blog.csdn.net/qinjuning/article/details/6936783
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘 (画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- ANDRIOD中绘(画)图----CANVAS的使用详解
- Andriod中绘(画)图----Canvas的使用详解 .
- Andriod中绘(画)图----Canvas的使用详解
- (转)Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- Andriod中绘(画)图----Canvas的使用详解
- JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别
- __attribute__ 之weak,alias属性
- 汇总关于css中text-indent应用总结
- Python import相对路径
- 提高VS2010运行速度的技巧+关闭拼写检查
- Andriod中绘(画)图----Canvas的使用详解
- 弹出层 动态居中
- usb驱动程序设计摘要
- linux下的lvs三种模式及配置
- Hadoop Shell命令 |HDFS Shell命令| HDFS 命令
- 【js学习笔记-081】-----选取文档元素
- Sql Server 2005 统计信息用途
- Dreamweaver 8有那些功能
- 装载环境