你见过这样比喻Paint,Canvas,Path这三个类的吗?

2016-05-08 19:11 阅读 3,699 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/1731.html

一.摘要

Paint,Canvas,Path这三个类被使用在自定义控件中,Paint被比喻成画笔,Canvas被比喻成画纸,Path被比喻成画尺,我们就是一个小学生,特喜欢在画画课堂上捣鼓,使用不同颜色的画笔在洁白的画纸上画出各种图像:有直线,曲线,三角形,圆形,矩形,甚至各种人物,动物,景物等。
wallpaper-beautiful-girl-hd

二.Paint

画笔不止有一只“铅笔”,而是12只不同颜色的“彩笔”,如果想要画一个红色的气球,我们选择红色的“彩笔”,设置Paint属性如下:

  1. Paint paintBalloon=new Paint();  
  2. paintBalloon.setColor(Color.RED);  

如果想要在红色气球的之间“画”多几个文字,文字的颜色为白色,文字的大小为20,文字的类型(字体,粗细,倾斜),文字的边界为平滑,选择另外一只画笔,设置Paint属性如下:

  1. Paint paintFont=new Paint();  
  2. paintFont.setColor(Color.WHITE);  
  3. paintFont.setTextSize(20);  
  4. paintFont.setTypeface(Typeface.SERIF);  
  5. paintFont.setTypeface(Typeface.DEFAULT_BOLD);  
  6. paintFont.setAntiAlias(true);  

三.Canvas

选好了画笔,可以开始取出一张“画纸”,然后再画纸上面画出红色的气球和白色的文字,创建一个Canvas对象,然后drawCircle()方法,代码如下:

  1. canvas.drawCircle(300,300,100,paintBalloon);  

第一个参数:圆心点的X轴坐标

第二个参数:圆心点的Y轴坐标

第三个参数:圆的半径

第四个参数:选择的Paint画笔

效果如下图:
001-paint_balloon

在气球的之间,同一张画纸,即同一个canvas对象,“画”上几个文字,具体代码如下:

  1. canvas.drawText("亲爱的",250,300,paintFont);  

第一个参数:画的文字

第二个参数:文字开始的X轴坐标

第三个参数:文字开始的Y轴坐标

效果如下图:
002-paint_font

在气球的下面,同一张画纸,即同一个canvas对象,“画”上一根线,具体代码如下:

  1. canvas.drawLine(300,400,300,800,paintLine);//第三只画笔  

第一个参数:线起点的X轴坐标

第二个参数:线起点的Y轴坐标

第三个参数:线终点的X轴坐标

第四个参数:线终点的Y轴坐标

第五个参数:画线的画笔

效果如下图:
003-paint_line

四.Path

Path是画尺,在气球的外边添加一圈粉色的边框,看起来更有立体感,那就要借助“三角板”的圆型模型,然后套在画纸上绘画,具体代码如下:

  1. Path pathCircle=new Path();  
  2. pathCircle.addCircle(300,300,120,Direction.CW);  
  1. Paint paintCircle=new Paint();  
  2.       paintCircle.setColor(Color.argb(80,255,192,203));  
  3.       paintCircle.setAntiAlias(true);  
  1. canvas.drawPath(pathCircle,paintCircle);//第四支画笔  

最终效果:
004-paint_bound

五.画笔,画纸,画尺Android开发应用

现在自定义MessageImageView控件,控件的特点设置图片src,然后裁剪为圆形图像,在圆形头像的右上角显示消息的数量,类似手机QQ消息提示红点效果,效果如下图:
message-imageview-demo

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/1731.html
Android学习笔记八:Java常用数据结构 Android学习笔记八:Java常用数
Android项目结构与分析源码,其中的秘密,你知道吗? Android项目结构与分析源码,其
关于ViewPager冲突问题分析及解决思路 关于ViewPager冲突问题分析及解
Android开发之深入理解泛型extends和super的区别 Android开发之深入理解泛型exte

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情