打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自定义View入门-绘制基础(1)
### 前言说道自定义View,我们一定会想到,自定义View的绘制流程- 测量阶段(measure)- 布局阶段(layout)- 绘制阶段(draw)我们看到的一些炫酷的view效果,都是在绘制方法里去实现的, 也就是`draw(Canvas)`, 我们先放下 测量与布局, 先从绘制基础开始学起。### 详解说到`ondraw(Canvas)`方法,不得不提`Paint`与`Canvas`。我们先来看`Paint`###### 1.PaintPaint就是"画笔",我们先去看下Paint类的源码解释:```** * The Paint class holds the style and color information about how to draw * geometries, text and bitmaps. */```Paint类可以画几何图形,文本与bitmap。Paint类方法比较多, 这里拿Paint.Style举例:- Paint.Style.FILL:填充内部- Paint.Style.FILL_AND_STROKE :填充内部和描边- Paint.Style.STROKE :描边![](https://img2018.cnblogs.com/blog/1312938/201909/1312938-20190921160047699-1410664224.png)###### 2.Canvas**(1).定义**Canvas就是“画布”,我们先去看下Canvas类的源码解释:``` * The Canvas class holds the "draw" calls. To draw something, you need * 4 basic components: A Bitmap to hold the pixels, a Canvas to host * the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, * Path, text, Bitmap), and a paint (to describe the colors and styles for the * drawing).```- 承载像素的位图- 持有绘画方法调用的画布- 描述画图颜色和风格的画笔- 画图的类型。**(2).绘制方法**方法比较多了,这里我就随便举几个例子:- 画线``` Paint paint=new Paint(); paint.setColor(Color.BLUE); paint.setStrokeWidth(20); paint.setStyle(Paint.Style.FILL); canvas.drawLine(200,200,450,200,paint);```![](https://img2018.cnblogs.com/blog/1312938/201909/1312938-20190921160048089-269409115.png)- 画矩形``` Paint paint=new Paint(); paint.setColor(Color.BLUE); paint.setStrokeWidth(50); paint.setStyle(Paint.Style.FILL ); canvas.drawRect(100,100,200,200,paint);```![](https://img2018.cnblogs.com/blog/1312938/201909/1312938-20190921160048326-68976265.png)- 画扇形-140度``` Paint paint=new Paint(); paint.setColor(Color.BLUE); paint.setStrokeWidth(50); paint.setStyle(Paint.Style.FILL ); canvas.drawArc(100,100,400,400,0,140,false,paint);```![](https://img2018.cnblogs.com/blog/1312938/201909/1312938-20190921160048569-499644571.png)更多的方法以及方法的含义可以去下面的API地址去看![API地址](https://developer.android.google.cn/reference/android/graphics/Canvas.html)今天就讲到这里 ,绘制基础还有一个非常重要的类,**Paht(路径)类**,下一节讲一下。希望对大家有所帮助!大家可以关注我的微信公众号:「秦子帅」一个有质量、有态度的公众号!![公众号](https://img2018.cnblogs.com/blog/1312938/201909/1312938-20190921160048726-1254022071.jpg)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android的图形引擎skia
Android控件Gallery3D效果
Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)
android matrix - qianda115的日志 - 网易博客
源码大赛+看脸时代测脸龄
Android 完美实现图片圆角和圆形(对实现进行分析)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服