贴吧搜搜吧 关注:80贴子:681

在这个吧更新点技术贴吧

只看楼主收藏回复

有时候楼主更些生活无聊的事实在不是我的风格,以后无聊就来更新点技术贴吧。不管有没有兴趣,去学习总是好的。


IP属地:河南来自Android客户端1楼2016-09-23 17:21回复
    最近看到了一些很好看的动画效果,比如Googleplay商店里面的详情特效很炫酷。那个其实在5.0以上系统实现起来不是特别难。难得是不敢尝试。晚上我会更新一个仿照的效果。并会附上解析。我也看了一些博客,基本都是粘贴复制。。。其实有的博客讲的很好,可是没考虑到新手的学习能力差。晚上楼主会静下心来打字告诉特效实现过程。


    IP属地:河南来自Android客户端2楼2016-09-23 17:25
    回复
      效果就是下图这样。APP绚丽的很主要因素就是动画,优美的动画着实能为APP增色不少,也是留住用户的一个重要手段。安卓5.0是安卓发展的里程碑也不为过,重要更新了material design设计理念,那个不是一句两句话能说清楚的。想了解的可以去看md中文文档,很好找。贴吧由于图压缩估计图可能会糊,只要仔细看清楚这幅动画设计过程。待会我会分析动画过程。其实代码并没有很多,主要是对于动画运用技术的锻炼以及一些简单的数学计算。废话不多说了。这只是开头。


      IP属地:河南来自Android客户端3楼2016-09-23 18:13
      回复


        IP属地:河南来自Android客户端5楼2016-09-23 18:22
        回复
          为啥贴吧不用gifview这个开源控件,看GIF妥妥的。晕了。看不到的保存在手机就能看了。待会回来开始讲代码。上图终结。


          IP属地:河南来自Android客户端12楼2016-09-23 18:57
          回复
            开始更新。放弃打游戏专心写。


            IP属地:河南来自Android客户端13楼2016-09-23 21:36
            回复
              然后思路我们看懂了就用代码来实现吧,首先我们说了我会使用属性动画来实现,既然使用属性动画绝对要知道ValueAnimator这个类。这个是实现属性动画的关键。当然还有ObjectAnimator,这个类是ValueAnimator的子类,可以来实现一些简单的动画,我们接下来的透明渐变动画就是用它来实现的。下面我将贴上ValueAnimator实现代码,然后再来解释。这帖子提前说明,拿来只是供新手来参考的,高手可以无视直接叉掉,因为高手看到GIF就知道怎么实现的了。所以发出来供新手参考下才是我发帖的目的。不要浪费时间在无聊的事情。不解释了。pass。上图


              IP属地:河南17楼2016-09-23 22:06
              回复
                上楼这两句话是计算动画的核心,说起来也惭愧。。。楼主本来想做抛物线动画,结果无奈太长没好好学习数学,,,导致我忘了抛物线怎么计算的了,,,就改成了直线了。。这个并不重要,只要知道了什么意思,算法可以自己随意写,动画效果也会变化。
                方法:T evaluate(float fraction, T startValue, T endValue)
                就是用来计算属性值的,即可计算任意类型的值。
                fraction 表示时间的比率。
                这个方法是用来根据时间比率计算数据,我在这里根据时间比率计算控件位置,并且计算过程中,系统会不断回调addUpdateListener,然后在addUpdateListener里面对控件属性进行不断设置,我这里通过不断改变控件x,y轴的位置来实现位移。


                IP属地:河南19楼2016-09-23 22:13
                回复


                  IP属地:河南来自Android客户端20楼2016-09-23 22:14
                  回复
                    我们可以使用属性动画里面的AnimatorSet来同时进行位移和alph渐变动画,两句代码,比较简单,没啥好解释的。因为java是面向对象的语言,万物皆对象,使用对象的方法来设置对象比较直观,,再说对英语懂点的人都知道这英文啥意思了


                    IP属地:河南23楼2016-09-23 22:28
                    回复



                      IP属地:河南24楼2016-09-23 22:28
                      回复
                        做完这些我们要进行下一步进行波浪纹扩散动画,这个动画是在5.0新引进的动画,只会支持在5.0及其以上系统,楼主机子是CM13,棉花糖系统,软件设置minSdkVersion 21,也就是最低版本5.0,所以无压力。波浪纹动画其实是比较简单的。
                        public static Animator createCircularReveal(View view,int centerX, int centerY, float startRadius, float endRadius) {
                        return new RevealAnimator(view, centerX, centerY, startRadius, endRadius
                        );
                        }
                        上面是源码,
                        第一个参数view:是你要进行圆形缩放的 view;
                        第二和第三个参数:分别是开始缩放点的 x 和 y 坐标;
                        第四和第五:分别是开始的半径和结束的半径。
                        下面是参数含义,这个比较好理解,所以我们下面要对位移动画进行监听,当我们位移完成的时候会进行波浪纹动画,上图你就明白了。


                        IP属地:河南25楼2016-09-23 22:34
                        回复
                          哈哈,做到这里我们就大功告成了,达到我们需要的目的了。其实代码很简单,只是对属性动画使用的熟练程度,楼主也要加油学习,毕竟楼主做APP追求绚丽的人机交互,最近一直在看md风格文档。
                          来张楼主桌面镇楼完结这个帖子,如果觉得对你有所帮助,不要吝啬你的评论。


                          IP属地:河南28楼2016-09-23 22:49
                          回复
                            我现在上网易云音乐听推荐韩曲歌单。里面几乎有一半都是我听过的。。。在吧里什么水平。。。


                            IP属地:河南来自Android客户端30楼2016-09-29 01:30
                            回复