view的相关
xifei66
你永远不知道自己的潜力有多大...
展开
-
Android自定义View实现QQ气泡效果
首先我们来看一下最终的效果:根据我们上边拆分出来的公式,我们分别看看每一个效果需要如何去实现:红色圆:canvas.drawCircle消息数字:canvas.drawText拖拽粘性效果:canvas.drawPath、 (两条二阶)贝塞尔曲线 (精髓所在)回弹效果:属性动画跟随移动:OnTouchEvent处理MotionEvent.ACTION_MOVE事件爆炸效果:属性动画View自定义属性为了提高自定义View的灵活性,我们需要提供几种自定义属性给外部来设.原创 2020-11-19 11:16:34 · 484 阅读 · 0 评论 -
事件分发机制原理 之二
常见事件既然是事件分发,总要有事件才能分发吧,所以我们先了解一下常见的几种事件。根据面向对象思想,事件被封装成 MotionEvent 对象,由于本篇重点不在于此,所以只会涉及到几个与手指触摸相关的常见事件:事件 简介 ACTION_DOWN 手指 初次接触到屏幕 时触发。 ACTION_MOVE 手指 在屏幕上滑动 时触发,会会多次触发。 ACTION_UP 手指 离开屏幕 时触发。 ACTION_CANCEL 事件 被上层拦截 时触发。 对于原创 2020-09-28 11:49:13 · 195 阅读 · 0 评论 -
事件分发机制原理 之一
为什么要有事件分发机制?安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这一个问题,就有了事件分发机制。如下图,View是一层一层嵌套的,当手指点击 View1 的时候,下面的ViewGroupA、 RootView 等也是能够响应的,为了确定到底应该是哪个View处理这次点击事件,就需要事件分发机制来帮忙。View的结构:我们的View是树形结构的,在上一个问题中实例View的结构大致如下:l原创 2020-09-28 11:44:59 · 231 阅读 · 0 评论 -
Path之PathMeasure 进阶篇
Path & PathMeasure顾名思义,PathMeasure是一个用来测量Path的类,主要有以下方法:构造方法方法名 释义 PathMeasure() 创建一个空的PathMeasure PathMeasure(Path path, boolean forceClosed) 创建 PathMeasure 并关联一个指定的Path(Path需要已经创建完成)。 公共方法返回值 方法名 释义 void setPath(P.原创 2020-09-28 11:05:15 · 994 阅读 · 0 评论 -
Path方法详解 进阶篇
作用 相关方法 备注 移动起点 moveTo 移动下一次操作的起点位置 设置终点 setLastPoint 重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同 连接直线 lineTo 添加上一个点到当前点之间的直线到Path 闭合路径 close 连接第一个点连接到最后一个点,形成一个闭合区域 添加内容 addRect, addRoundRect, addOval, addCircle, addP原创 2020-09-27 17:11:40 · 2983 阅读 · 0 评论 -
Path之贝塞尔曲线 进阶篇
一.Path常用方法表为了兼容性(偷懒) 本表格中去除了在API21(即安卓版本5.0)以上才添加的方法。忍不住吐槽一下,为啥看起来有些顺手就能写的重载方法要等到API21才添加上啊。宝宝此刻内心也是崩溃的。作用 相关方法 备注 移动起点 moveTo 移动下一次操作的起点位置 设置终点 setLastPoint 重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同 连接直线 lineTo 添加上一个点到当前点之原创 2020-09-27 10:41:07 · 899 阅读 · 0 评论 -
Path之基本操作 进阶篇
一.Path常用方法表为了兼容性(偷懒) 本表格中去除了部分API21(即安卓版本5.0)以上才添加的方法。作用 相关方法 备注 移动起点 moveTo 移动下一次操作的起点位置 设置终点 setLastPoint 重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同 连接直线 lineTo 添加上一个点到当前点之间的直线到Path 闭合路径 close 连接第一个点连接到最后一个点,形成一个闭合原创 2020-09-24 16:26:05 · 1672 阅读 · 0 评论 -
Canvas之图片文字 进阶篇
接着上一篇文章继续学习1.绘制图片绘制有两种方法,drawPicture(矢量图) 和 drawBitmap(位图),接下来我们一一了解。(1)drawPicture使用Picture前请关闭硬件加速,以免引起不必要的问题!使用Picture前请关闭硬件加速,以免引起不必要的问题!使用Picture前请关闭硬件加速,以免引起不必要的问题!在AndroidMenifest文件中application节点下添上 android:hardwareAccelerated="false"以关闭原创 2020-09-24 14:36:26 · 924 阅读 · 0 评论 -
Android如何关闭硬件加速
硬件加速Android 3.0 (API level 11), 开始支持所有的View 的canvas都会使用GPU,但是硬件的加速会占有一定的RAM。在API >= 14上,默认是开启的,如果你的应用只是标准的View和Drawable,全局都打开硬件加速,是不会有任何问题的。然而,硬件加速并不支持所有的2D画图的操作,这时开着它,可能会影响到你的自定义控件或者绘画,出现异常等行为,所以android对于硬件加速提供了可选性如果你的应用执行了自定义的绘画,可以通过在真机上测试开启硬件原创 2020-09-24 11:43:21 · 1831 阅读 · 0 评论 -
Canvas之绘制基本形状
一.Canvas简介Canvas我们可以称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大。一般来说,比较基础的东西有两大特点:1.可操作性强:由于这些是构成上层的基础,所以可操作性必然十分强大。2.比较难用:各种方法太过基础,想要完美的将这些操作组合起来有一定难度。不过不必担心,本系列文章不仅会介绍到Canvas的操作方法,还会简单介绍一些设计思路和技巧。二.Canvas的常用操作速查表操作类型 相关API 备注 绘制颜色 dra.原创 2020-09-23 17:51:04 · 571 阅读 · 0 评论 -
自定义View分类与流程 基础篇
一.自定义View分类我将自定义View分为了两类(sloop个人分类法,非官方):1.自定义ViewGroup自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承自ViewGroup或各种Layout,包含有子View。例如:应用底部导航条中的条目,一般都是上面图标(ImageView),下面文字(TextView),那么这两个就可以用自定义ViewGroup组合成为一个Veiw,提供两个属性分别用来设置文字和图片,使用起来会更加方便。2.自定义V原创 2020-09-23 16:37:18 · 152 阅读 · 0 评论