
自定义控件
进击的代码家
这个作者很懒,什么都没留下…
展开
-
自定义recyclerView实现时光轴效果
时光轴效果在很多app上都有出现,例如淘宝中快递的跟踪,本文将使用recyclerView实现时光轴效果,我们会到自定义控件,首先先看一下效果图:接下来是步骤分析1自定义属性这个大家应该都了解了,根据我们之前的分析,直接在attrs.xml中进行声明 进行一下各个属性的声明• beginLine:开始的线条原创 2016-07-24 16:36:04 · 2549 阅读 · 0 评论 -
Android自定义系列——13.Matrix Camera
我们的手机屏幕是一个2D的平面,所以也没办法直接显示3D的信息,因此我们看到的所有3D效果都是3D在2D平面的投影而已,而本文中的Camera主要作用就是这个,将3D信息转换为2D平面上的投影,实际上这个类更像是一个操作Matrix的工具类,使用Camera和Matrix可以在不使用OpenGL的情况下制作出简单的3D效果。测试本文章示例之前请关闭硬件加速。Camera常用方法表方法...原创 2019-05-22 20:29:51 · 2345 阅读 · 0 评论 -
Android自定义系列——12.Matri详解
方法类别相关API摘要基本方法equals hashCode toString toShortString比较、 获取哈希值、 转换为字符串数值操作set reset setValues getValues设置、 重置、 设置数值、 获取数值数值计算mapPoints mapRadius mapRect mapVectors计算变换后的数值设置(...原创 2019-05-21 21:09:49 · 545 阅读 · 0 评论 -
Android自定义系列——10.PathMeasure
顾名思义,PathMeasure是一个用来测量Path的类,主要有以下方法:构造方法方法名释义PathMeasure()创建一个空的PathMeasurePathMeasure(Path path, boolean forceClosed)创建 PathMeasure 并关联一个指定的Path(Path需要已经创建完成)。...原创 2019-01-30 17:30:46 · 466 阅读 · 0 评论 -
Android自定义系列——9.Path详细用法
rXxx方法rXxx方法的坐标使用的是相对位置(基于当前点的位移),而之前方法的坐标是绝对位置(基于当前坐标系的坐标)。Path path = new Path();path.moveTo(100,100);path.lineTo(100,200);canvas.drawPath(path,mDeafultPaint);在这个例子中,先移动点到坐标(100,100)处,之后再连接...原创 2019-01-28 19:40:12 · 2017 阅读 · 0 评论 -
Android自定义系列——8.Path之贝塞尔曲线
贝塞尔曲线能干什么贝塞尔曲线作用十分广泛,简单举几个的栗子:QQ小红点拖拽效果一些炫酷的下拉刷新控件阅读软件的翻书效果一些平滑的折线图的制作很多炫酷的动画效果理解贝塞尔曲线的原理一阶曲线原理:一阶曲线是没有控制点的,仅有两个数据点(A 和 B),最终动态过程如下:(本文中贝塞尔曲线相关的动态演示图片来自维基百科)。一阶曲线其实就是前面讲解过的lineTo。二阶曲线原理:二...原创 2019-01-28 17:27:48 · 650 阅读 · 0 评论 -
Android自定义系列——7.Path之基本操作
Path常用方法表为了兼容性(偷懒) 本表格中去除了部分API21(即安卓版本5.0)以上才添加的方法。作用相关方法备注移动起点moveTo移动下一次操作的起点位置设置终点setLastPoint重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同连接直线lineTo添加上一个点到当前点之间的直线到Path闭合路径c...原创 2019-01-28 16:11:59 · 1119 阅读 · 0 评论 -
Android自定义系列——11.Matrix入门
Matrix简介Matrix是一个矩阵,主要功能是坐标映射,数值转换。它看起来大概是下面这样:原创 2019-01-31 16:37:07 · 687 阅读 · 0 评论 -
Android自定义系列——6.PorterDuffXfermode
在用Android中的Canvas进行绘图时,可以通过使用PorterDuffXfermode将所绘制的图形的像素与Canvas中对应位置的像素按照一定规则进行混合,形成新的像素值,从而更新Canvas中最终的像素颜色值,这样会创建很多有趣的效果。当使用PorterDuffXfermode时,需要将将其作为参数传给Paint.setXfermode(Xfermode xfermode)方法,这样在...原创 2019-01-25 17:53:37 · 2393 阅读 · 1 评论 -
Android自定义系列——5.Canvas图片文字绘制
1.绘制图片绘制有两种方法,drawPicture(矢量图) 和 drawBitmap(位图)(1)drawPicture使用Picture前请关闭硬件加速,以免引起不必要的问题!在AndroidMenifest文件中application节点下添上 android:hardwareAccelerated=”false”以关闭整个应用的硬件加速。Picture的相关方法相关方法...原创 2019-01-25 15:19:32 · 2123 阅读 · 0 评论 -
Android自定义系列——4.Canvas操作
1.画布操作为什么要有画布操作?画布操作可以帮助我们用更加容易理解的方式制作图形。⑴位移(translate)translate是坐标系的移动,可以为图形绘制选择一个合适的坐标系。 请注意,位移是基于当前位置移动,而不是每次基于屏幕左上角的(0,0)点移动,如下:// 省略了创建画笔的代码// 在坐标原点绘制一个黑色圆形mPaint.setColor(Color.BLACK);c...原创 2019-01-24 17:40:08 · 366 阅读 · 0 评论 -
Android自定义系列——3.Canvas详解
3.1 Canvas图形绘制Canvas也称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大,Android Api中Canvas的相关 Api有许多。1.绘制颜色绘制颜色是填充整个画布,常用于绘制底色。例如我想将整个画布绘制为蓝色,可以使用如下方法:canvas.drawColor(Color.BLUE);2.创建画笔要想绘制内容,首先需要先创建一个画笔,画...原创 2019-01-24 16:20:54 · 439 阅读 · 0 评论 -
Android自定义系列——2.自定义View基础知识
2.1 坐标系学习自定义控件,坐标系是必须了解的内容,Android中我们需要了解的坐标系有屏幕坐标系,View的坐标系。2.1.1 屏幕坐标系移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向,坐标系如图所示2.1.2 View的坐标系Android中View也存在坐标系,在View中,提供了如下几个函数getTop(); //获取子View左...原创 2019-01-23 18:00:24 · 332 阅读 · 0 评论 -
Android 贝塞尔曲线解析
相信很多同学都知道“贝塞尔曲线”这个词,我们在很多地方都能经常看到。利用“贝塞尔曲线”可以做出很多好看的UI效果,本篇博客就让我们一起学习“贝塞尔曲线”。贝塞尔曲线的原理贝塞尔曲线是用一系列点来控制曲线状态的,这些点简单分为两类: 类型 作用 数据点 确定曲线的起始和结束位置 控制点 确定曲线的弯曲程度一阶贝塞尔曲线 一阶曲线是没有控制点的,仅有两个数据点(A 和 B),最原创 2017-07-24 23:49:48 · 11175 阅读 · 9 评论 -
从零开始学Android自定义View之动画系列——属性动画(3)
属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了。因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画所无法实现的功能。ValueAnimator的高级用法补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限制,它可以对任意对象进行动画操作。那么大家应该还记得在上篇文章当中我举的一个例子,比如说原创 2016-11-27 17:18:49 · 1867 阅读 · 2 评论 -
从零开始学Android自定义View之动画系列——属性动画(2)
组合动画独立的动画能够实现的视觉效果毕竟是相当有限的,因此将多个动画组合到一起播放就显得尤为重要。幸运的是,Android团队在设计属性动画的时候也充分考虑到了组合动画的功能,因此提供了一套非常丰富的API来让我们将多个动画组合到一起。 实现组合动画功能主要需要借助AnimatorSet这个类,这个类提供了一个play()方法,如果我们向这个方法中传入一个Animator对象(ValueAnima原创 2016-11-27 15:38:02 · 1080 阅读 · 0 评论 -
从零开始学Android自定义View之动画系列——属性动画(1)
概述在android3.0之前给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列的动画操作,包括淡入淡出、缩放、平移、旋转四种。然而自Andr原创 2016-11-27 14:59:03 · 1579 阅读 · 0 评论 -
Android自定义系列——14.MotionEvent
MotionEvent在android的触摸事件中起到了很重要的作用,本文主要介绍MotionEvent,简要介绍触摸事件,主要包括 单点触控、多点触控、鼠标事件 以及 getAction() 和 getActionMasked() 的区别。Android 将所有的输入事件都放在了 MotionEvent 中:版本号更新内容Android 1.0 (API 1 )支持单点...原创 2019-05-24 11:28:06 · 2168 阅读 · 0 评论