zoukankan      html  css  js  c++  java
  • android动画介绍之 自己定义Animation动画实现qq抖一抖效果

    昨天我们介绍了Animation的基本使用方法。小伙伴们了解的怎么样了?假设还没有了解过Animation的小伙伴能够看看这篇博客

    android动画介绍--Animation 实现loading动画效果

    安卓内置的四种动画尽管说能够用AnimationSet进行组合操作,可是这些组合往往在特定场合是不够用的,就像view一样。我们能够自己定义动画效果。

    今天要做成的效果是模仿qq的抖一抖效果,老规矩,先来看今天的效果图:


    自己定义动画的实现方法为 继承Animation类重写applyTransformation()方法

    public class CustomAnimation extends Animation {
        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            t.getMatrix().setTranslate((float)Math.sin(interpolatedTime*50)*20,0);
    
            super.applyTransformation(interpolatedTime, t);
        }
    }
    

    能够看到 applyTransformation()方法有两个參数  第一个參数interpolatedTime代表一个0-1逐渐增大的float。 t代表view所须要的变化。比如t.setAlpha();  t.setTranslate();顾名思义这两个方法是发生透明度变化和位移变化。

    那么我们今天的目标是实现抖一抖效果,思路例如以下: view先向左位移,再向右位移。

    坐标为  (0-n,0) --->(0+n,n),一正一负的变化,就要用到我们的三角函数了。所以这里t.setTranslate(Math.sin())。

    这样基本上我们的自己定义 动画就完毕了。接下来在MainActivity下获取当前的布局,给他加入动画效果

    public class MainActivity extends ActionBarActivity {
        private Button mButton;
        private RelativeLayout mRelativeLayout;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mButton = (Button) findViewById(R.id.shake);
            mRelativeLayout = (RelativeLayout) findViewById(R.id.relativelayout);
            final CustomAnimation ca = new CustomAnimation();
            ca.setDuration(1000);
            mButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mRelativeLayout.startAnimation(ca);
                }
            });
    
        }
    }
    


    这样便大功告成!假设喜欢我的博客。请点赞哦

    源码下载

  • 相关阅读:
    MySQL InnoDB 锁
    MySQL InnoDB 事务
    MySQL 执行计划详解
    php获取当前url地址的方法小结
    数据库联表统计查询 Group by & INNER JOIN
    大文件分片上传,断点续传,秒传 实现
    如何让 height:100%; 起作用
    移动前端头部标签(HTML5 head meta)
    Emoji表情符号在MySQL数据库中的存储
    HTML页面直接显示json 结构
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7397737.html
Copyright © 2011-2022 走看看