自定义VIEW(学习笔记三)-基本图形的绘制
来源:互联网 发布:win7 壁纸 设置 软件 编辑:程序博客网 时间:2024/05/16 18:17
一.Canvas简介
Canvas我们可以称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大。
一般来说,比较基础的东西有两大特点:
- 可操作性强:由于这些是构成上层的基础,所以可操作性必然十分强大。
- 比较难用:各种方法太过基础,想要完美的将这些操作组合起来有一定难度。
不过不必担心,本系列文章不仅会介绍到Canvas的操作方法,还会简单介绍一些设计思路和技巧。
二.Canvas的常用操作速查表
三.Canvas
3.1 绘制颜色
绘制颜色是填充整个画布,常用于绘制底色。
canvas.drawColor(Color.BLUE); //绘制蓝色
3.2 创建画笔
要想绘制内容,首先需要先创建一个画笔:
// 1.创建一个画笔 private Paint mPaint = new Paint();
// 2.初始化画笔 private void initPaint() { mPaint.setColor(Color.BLACK); //设置画笔颜色 mPaint.setStyle(Paint.Style.FILL); //设置画笔模式为填充 mPaint.setStrokeWidth(10f); //设置画笔宽度为10px }
// 3.在构造函数中初始化 public SloopView(Context context, AttributeSet attrs) { super(context, attrs); initPaint(); }
3.3绘制点:
可以绘制一个点,也可以绘制一组点,如下:
canvas.drawPoint(200, 200, mPaint); //在坐标(200,200)位置绘制一个点 canvas.drawPoints(new float[]{ //绘制一组点,坐标位置由float数组指定 500,500, 500,600, 500,700 },mPaint);
关于坐标原点默认在左上角,水平向右为x轴增大方向,竖直向下为y轴增大方向。
3.4 绘制直线:
canvas.drawLine(300,300,500,600,mPaint); // 在坐标(300,300)(500,600)之间绘制一条直线canvas.drawLines(new float[]{// 绘制一组线 每四数字(两个点的坐标)确定一条线 100,200,200,200, 100,300,200,300},mPaint);
3.5 绘制矩形:
确定确定一个矩形最少需要四个数据,就是对角线的两个点的坐标值,这里一般采用左上角和右下角的两个点的坐标。
关于绘制矩形,Canvas提供了三种重载方法,第一种就是提供四个数值(矩形左上角和右下角两个点的坐标)来确定一个矩形进行绘制。 其余两种是先将矩形封装为Rect或RectF(实际上仍然是用两个坐标点来确定的矩形),然后传递给Canvas绘制,如下:
// 第一种canvas.drawRect(100,100,800,400,mPaint);// 第二种Rect rect = new Rect(100,100,800,400);canvas.drawRect(rect,mPaint);// 第三种RectF rectF = new RectF(100,100,800,400);canvas.drawRect(rectF,mPaint);
两者最大的区别就是精度不同,Rect是int(整形)的,而RectF是float(单精度浮点型)的。
3.6 绘制圆角矩形:
绘制圆角矩形也提供了两种重载方式,如下:
// 第一种 RectF rectF = new RectF(100,100,800,400); canvas.drawRoundRect(rectF,30,30,mPaint); // 第二种 canvas.drawRoundRect(100,100,800,400,30,30,mPaint);
上面两种方法绘制效果也是一样的,但鉴于第二种方法在API21的时候才添加上,所以我们一般使用的都是第一种。
0 0
- 自定义VIEW(学习笔记三)-基本图形的绘制
- 自定义View学习笔记04—Canvas的绘制图形
- 自定义View绘制简单基本图形
- opencv学习笔记(三)-绘制基本图形及文字
- 自定义view--绘制图形
- 【OpenGL】学习笔记之一 绘制基本图形单元的方法
- Open CV 学习笔记:基本图形绘制
- 自定义View绘制各种图形
- 【Unity Shader学习笔记】(三)绘制点、直线、网格等基本图形
- 基本图形的绘制
- 基本的图形绘制
- 绘制自定义的图形
- 自定义View绘制图形一(绘制静态图形)
- Android学习笔记之-自定义View实例及View的绘制过程(一)
- 自定义View系列(三)View的绘制分析
- 图形绘制管线的学习笔记
- webgl学习笔记1--如何绘制一个基本图形
- 自定义View进阶-Canvas之绘制图形
- HDU 2424 Gary's Calculator 模拟 + 高精度
- 第14周 oj 1 数组逆序
- 欢迎使用CSDN-markdown编辑器
- ECIF系统 校验一户多号是否成功
- Bootstrap FileInput多文件上传插件使用详解(包括Java代码)
- 自定义VIEW(学习笔记三)-基本图形的绘制
- html单元格导出excel图形环境问题
- 基数排序
- conn.setAutoCommit(false);设置事物手动提交
- 不同浏览器空格宽度不一样的解决方法
- Android图片加载库的封装实战
- native: tensorflow_jni.cc:153 Could not create TensorFlow Graph: Not found: Op type not registered '
- JSTL标签库
- SpringIOC容器接口