`
VIP庚
  • 浏览: 223892 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android 通过PathMeasure和Path实现动画

 
阅读更多
  最近一直在学习android框架,也就没怎么写博客了。前几天看到微信里推送的一篇博客,觉得动画很酷炫,就钻研了一番,这里我只是简单实现下,并说说实现原理和遇到的坑。有兴趣的可以参考:http://blog.csdn.net/zxt0601/article/details/53040506
这里面详细介绍了一番。实现方法 有些差异。
 
效果图:



  这里我通过PathMeasure和Path实现,简单介绍下PathMeasure
  PathMeasure是用来操作Path的,初始化
 mPathMeasure=new PathMeasure();
        //forceClosed 就是Path最终是否需要闭合,如果为True的话,则不管关联的Path是否是闭合的,都会被闭合 PathMeasure的计算就会包含最后一段闭合的路径
        mPathMeasure.setPath(mPath,false);



得到path长度,可以这样理解,不管实际 Path 多么的复杂,PathMeasure 都相当于做了一个事情,就是把 Path “拉直”,然后给了我们一个接口(getLength)告诉我们path的总长度,
mPathMeasure.getLength()

注意 这里得到的length是当前mPathMeasure指向线段的长度,并不是path总长度,如果要得到总长度需要通过nextContour来遍历mPathMeasure,得到每段长度再加起来



得到Path中的某一点或某一段
getPosTan(float distance, float[] pos, float[] tan)
getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)

这里要注意的是得到的线段是添加进 dst中的,并不是给dst重新赋值,如果想要重新生成一个线段,可以先重置dst  path.reset().
startWithMoveTo
为true:再次截取,起始点为0时,还是原path的起始点。
为false:再次截取,起始点为0时,为上次截取的终点。
startD stopD 是当前PathMeasure指向线段的开始和起始位置


Path 可以由多条曲线构成,但不论是 getLength , getgetSegment 或者是其它方法,都只会在其中第一条线段上运行,而这个 nextContour 就是用于跳转到下一条曲线到方法,如果跳转成功,则返回 true, 如果跳转失败,则返回 false。

这里要注意开始时直接调用 mPathMeasure.nextContour ()会跳到第一条线段,但如果你操作了mPathMeasure,如getLength,它会自动跳到第一条线段。


实现原理很简单 将想要显示的图案生成path,在onDraw绘制,然后就通过mPathMeasure不断得到想要高亮显示的路径,再在onDraw绘制出来

demo:https://github.com/592713711/HeartAnimDemo
  • 大小: 57.6 KB
2
0
分享到:
评论

相关推荐

    浅谈Android PathMeasure详解和应用

    总结来说,Android的PathMeasure是处理Path图形的重要工具,它允许开发者获取Path的详细信息,如长度和闭合状态,从而实现更复杂的图形绘制和动画效果。在开发涉及自定义视图和图形操作的Android应用时,熟练使用...

    PathMeasure在动画中的应用.zip

    例如,我们可以创建一个ValueAnimator,设置其动画时长,然后在每一帧的回调中,使用PathMeasure的`getLength()`方法确定动画进度,再通过`getPosTan()`获取当前进度对应的Path上的位置和角度。 接下来,涉及到...

    Android通过Path实现搜索按钮和时钟复杂效果

    总的来说,Android通过Path和PathMeasure结合动画技术,可以实现各种复杂的图形动画效果,如搜索按钮的变形动画和时钟指针的转动。这种技术在UI设计和交互体验提升方面有着广泛的应用,让应用的界面变得更加生动和...

    android 仿path动画菜单lib源码.rar

    这个"android 仿path动画菜单lib源码"是专门为Android平台设计的一个库,旨在实现类似Path的应用程序菜单,带有优雅的动画效果。下面将详细探讨这个库的核心概念和关键知识点。 1. **自定义View和动画** 这个库的...

    android path画折线

    在Android开发中,`Path`类是用于创建和操作路径的重要工具。`Path`类提供了绘制各种形状,如直线、曲线、折线等的能力。在这个场景中,我们关注的是如何使用`Path`来画折线。下面将详细介绍`Path`类的使用方法,...

    PathMeasure的示例Demo.zip

    总的来说,PathMeasure是Android开发者在处理Path相关任务时的重要工具,它提供了测量Path长度和获取Path上特定位置信息的功能,极大地丰富了自定义View和动画的实现方式。掌握PathMeasure的使用,能够帮助你创造出...

    Android 使用 Path 实现搜索动态加载动画效果

    Android 使用 Path 实现搜索动态加载动画效果是 Android 开发中的一种常见技术,通过使用 Path 对象来实现复杂的图形绘制和动画效果。在本文中,我们将详细介绍如何使用 Path 实现搜索动态加载动画效果。 首先,...

    Android中Path的使用

    - `PathMeasure`类提供了测量和检索`Path`信息的功能,如长度、曲率等,常用于动画和复杂的图形处理。 6. **源码解析** - 了解`Path`的内部实现可以帮助开发者更高效地使用它。例如,`Path`是如何存储和优化路径...

    path动画效果

    Path动画效果在IT行业中主要指的是使用SVG(Scalable Vector Graphics)路径来创建动态图形的技巧。SVG是一种基于XML的矢量图像格式,它允许开发者用代码定义形状、线条、曲线等元素,并通过编程方式控制这些元素的...

    Android自定义View图片按Path运动和旋转

    通过本文,我们了解了 Android 自定义 View 图片按 Path 运动和旋转的实现方法和原理,并了解了 Path、PathMeasure 和 ValueAnimator 的使用。同时,我们也了解了如何使用 Matrix 来实现图片的平移旋转操作,以便...

    高仿Path动画

    "高仿Path动画"是一种创新的动画效果,它通过组合多种Android内置动画技术,模仿Path菜单的行为,为用户带来独特的视觉体验。这种动画通常用于导航菜单或者界面过渡,可以使得应用的交互更加生动有趣。 Path动画的...

    SearchView轨迹动画

    "SearchView轨迹动画"是一个特定的UI交互效果,它通过PathMeasure类来实现搜索框输入时的动态轨迹效果。这个动画使得用户在使用SearchView时,输入过程更加生动有趣,提高了应用的交互性。接下来,我们将深入探讨...

    Android模仿贝尔塞曲线路径动画demo

    通过分析这个应用的源代码,我们可以深入理解如何在Android平台上利用贝塞尔曲线实现动态路径动画,这对于制作复杂的UI过渡效果或游戏中的角色移动路径非常有用。 总的来说,这个demo展示了如何在Android中利用...

    android 购物车添加商品动画.zip

    总的来说,“android 购物车添加商品动画.zip”项目涵盖了Android动画系统、贝塞尔曲线绘制以及动画的实现和控制等多个技术点。开发者可以通过学习和实践这个项目,提升自己在Android应用中创建复杂动画的能力,为...

    PathMeasure 和 PathEffect的实例

    在Android开发中,`...总的来说,`PathMeasure`和`PathEffect`是Android图形系统中的强大工具,能够帮助开发者创造出丰富多样的图形动画和视觉效果。理解并熟练运用这两个类,能极大地提升应用的界面表现力。

    android 动画轨迹

    3. **贝塞尔曲线的实现**:在Android中,我们可以通过Path类和PathMeasure类结合使用来实现赛贝尔曲线。首先,我们需要定义控制点来构建曲线,然后在动画过程中根据时间进度计算出当前点的位置。 4. **插值器...

    自定义View实现支付宝支付成功动画

    总之,通过结合使用属性动画和PathMeasure,我们可以为Android应用创造出复杂且吸引人的支付成功动画。这个过程中涉及了自定义View的绘制、动画的控制和路径测量等多个技术点,是Android开发者提升专业技能的一个好...

    安卓源码仿path动画菜单lib.zip

    "安卓源码仿path动画菜单lib.zip" 提供的库是专门为Android应用设计的一个自定义控件,它实现了Path Animation来创建极具吸引力的菜单效果。这个库可能是开发者为了模仿Path应用(一款流行的社交网络应用)的动画...

Global site tag (gtag.js) - Google Analytics