自定义View
任缥缈
天狼啸月的追逐
展开
-
通过xml画圆弧,再也不用求UIP图了
直接上代码,怼UI:<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 左右负边距,就是一条直线, 然后高度高出布局的一半, 左右负责yuan弧度大小 top控制举例控件底部举例--> <item android:left="-150dp" android:right="-150d原创 2020-09-17 17:42:43 · 575 阅读 · 0 评论 -
自定义View学习笔记09—Path之Bezier
一、贝赛尔曲线来源 在数学的数值分析领域中,贝赛尔曲线(Bézier曲线)是电脑图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例。 关于贝赛尔曲线公式及退到,由于这部分难度太高,也讲不清楚,这里不细说了,有兴趣的可以自己看这里: http://blog.csdn.net/harvic880925/article/details/50995原创 2017-12-29 15:46:48 · 291 阅读 · 0 评论 -
自定义View学习笔记01—基础理论
本学习笔记来自 GcsSloop http://www.gcssloop.com/customview/CustomViewIndex/ 的Android自定义View系列文章一、Android屏幕坐标系和数学坐标系的区别:Android移动设备一般定义屏幕左上角为坐标原点,水平向右为X轴正方向,竖直线下为Y轴正方向;数学坐标系中定义角度增大方向为逆时针方向,在Android屏幕坐标系中角度增大方原创 2017-12-25 11:29:11 · 230 阅读 · 0 评论 -
自定义View学习笔记08—Path基本操作
从本篇笔记开始,我们进入上一篇笔记里面提到的大杀器Path的世界。 同样的,我们依循惯例先来看看Path的常用方法(API21以下的):同样的,使用到Path,也要关闭硬件加速。方法同前。Path作用 之所以称Path是一个大杀器,并单独来学习,就是因为Path不仅能够绘制简单图形,也可以绘制这些比较复杂的图形。另外,根据路径绘制文本和剪裁画布都会用到Path。在2D绘图中基本离不开Path。P原创 2017-12-27 18:08:38 · 293 阅读 · 0 评论 -
自定义View学习笔记07—Canvas绘制文字
这里我们接着上一篇笔记没有讲完的内容:用canvas绘制文字,这个在自定义View尤其是定义线性View的时候作用非常大。 我们还是依照惯例先看看API提供的关于文字绘制的方法://第一类:只能指定文本基线位置(基线x默认在字符串左侧,基线y默认在字符串下方)public void drawText(String text, float x, float y, Paint paint)publ原创 2017-12-27 17:07:40 · 237 阅读 · 0 评论 -
自定义View学习笔记06—Canvas绘制图片
本学习笔记来自GcsSloop的http://www.gcssloop.com/customview/Canvas_PictureText一文;一、绘制图片 Picture和camera录像功能是类似的,只不过我们Picture录的是Canvas中绘制的内容,camera录制的是现实世界中的内容。绘制图片,Google官方提供了两种方法,一是drawPicture(矢量图) ,二是 drawBit原创 2017-12-26 17:27:09 · 413 阅读 · 0 评论 -
用Bezier绘制圆滑曲线
新项目需求里面,需要根据不同的数据,绘制一条圆滑曲线,最开始想到的是用二阶贝塞尔曲线来绘制。两个数据点,一个控制点,三个数据,从第0个开始,依次推进。实践的时候 发现不对,绘制出来的数据跟UI要求的或者跟预期中的差距太远了。 项目需求的曲线在度娘哪里得到的信息,无外乎两种:一种就是教你如何绘制三个点下的二阶贝塞尔,或者说4个点下的三阶贝塞尔。笑话,单单几个点独立成...原创 2018-04-30 15:14:02 · 2399 阅读 · 0 评论 -
自定义View学习笔记05—Canvas下操作画布
为什么要有画布操作? 疑问======>>>以默认的坐标系圆点为起点,画一条与X轴呈45°的射线,你会怎么操作?以常规的数学思路来看,先使用三角函数计算出射线上任一点的坐标,然后调用drawLine即可。 有没有更加简单的方法?这个问题留在本笔记最后来解答。 现在进入操作画布的主题:1、位移translate(float dx, float dy):注意:这里的...原创 2017-12-25 22:35:52 · 265 阅读 · 0 评论 -
自定义View学习笔记04—Canvas的绘制图形
前面通过深入学习,通过3篇笔记详细的记录了自定义View的一些基础知识,从这篇开始正式进入自定义View的大门。TODO:Canvas可以绘制的对象有:弧线(arcs)、填充颜色(argb和color)、 Bitmap、圆(circle和oval)、点(point)、线(line)、矩形(Rect)、图片(Picture)、圆角矩形 (RoundRect)、文本(text)、顶点(Vertice原创 2017-12-25 18:11:31 · 245 阅读 · 0 评论 -
自定义View学习笔记03—View的工作原理简介
这篇博客有点长,但我想讲得还是比较清晰的,希望能坚持看完。一、几个重要的概念: 1、MeasureSpec概述:作用上简单地说就是测量View的Width/Height尺寸。一个子View的Width/Height尺寸同事受自身尺寸参数LayoutParams和父View尺寸的影响。测量过程中系统会将View的LayoutParams根据父View的MeasureSpec参数情况转换成自身的Mea原创 2017-12-25 16:55:39 · 243 阅读 · 0 评论 -
自定义View学习笔记02—View的几个重要方法
一、构造方法: 构造方法是View的入口,可以用于初始化一些的内容,和获取自定义属性。 View的构造函数有四种重载分别如下:Public void SloopView(Context context);Public void SloopView(Context context, AttributeSet attrs);Public void SloopView(Context contex原创 2017-12-25 14:39:29 · 313 阅读 · 0 评论 -
自定义View实现ImageView在任意尺寸下对Image的自适应
今天研究图片处理的一些功能,发现当图片宽度铺满屏幕宽度的时候,无论怎么设置scaleType属性+adjustViewBounds属性都无法使图片在铺满屏幕宽度的前提下保持宽高比不变,经过参考网上前辈的经验,发现需要自定义IamgeView,重写onMeasure()方法:具体思路是:获取加载在ImageView中的图片的Drawable对象,然后以屏幕的宽度*Drawable对象的宽高比,获...原创 2017-10-30 17:24:34 · 2587 阅读 · 1 评论