自定义动画效果

新建一个customAnim类

  1. package com.liwenchi.myapplication;
  2.  
  3. import android.view.animation.Animation;
  4. import android.view.animation.Transformation;
  5.  
  6. import static java.lang.Math.*;
  7.  
  8. /**
  9. * Created by VULCAN on 2017/8/2.
  10. */
  11.  
  12. public class CustomAnim extends Animation {
  13.  
  14. @Override
  15. protected void applyTransformation(float interpolatedTime, Transformation t) {
  16. //interpolatedTime代表补间动画时间,从0~1,0代表开始,1代表结束
  17. //t代表变化对象
  18. float p = interpolatedTime;
  19. super.applyTransformation(interpolatedTime, t);
  20. //System.out.println(interpolatedTime);
  21. //t.setAlpha(interpolatedTime);设置透明度
  22. //t.getMatrix().setTranslate(0, -300*p);设置位置
  23. t.getMatrix().setTranslate((float) (sin(p*2*6.28*p)*50), 0);
  24. }
  25. }

其中,重写applyTransformation()方法

MainActivity.java里创建一个CustomAnim动画

  1. package com.liwenchi.myapplication;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.animation.AlphaAnimation;
  7. import android.view.animation.Animation;
  8. import android.view.animation.AnimationSet;
  9. import android.view.animation.AnimationUtils;
  10. import android.view.animation.RotateAnimation;
  11. import android.view.animation.ScaleAnimation;
  12. import android.view.animation.TranslateAnimation;
  13. import android.widget.Button;
  14. import android.widget.CheckBox;
  15. import android.widget.CompoundButton;
  16. import android.widget.TextView;
  17.  
  18. public class MainActivity extends AppCompatActivity {
  19.  
  20. private CustomAnim ca;
  21.  
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.activity_main);
  26. slove();
  27. }
  28.  
  29. private void slove() {
  30. ca = new CustomAnim();
  31. ca.setDuration(1000);
  32. findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
  33.  
  34. @Override
  35. public void onClick(View v) {
  36. v.startAnimation(ca);
  37. }
  38. });
  39. }
  40. }
  41. //v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.ta));

这样就自定义了一个“摇头”的动画效果

[2017-8-02]Android Learning Day8的更多相关文章

  1. [2017-7-26]Android Learning Day4

    RecycleView 恩,学习Fragment的过程中的一个小实践居然用到了RecycleView!坑了我好久有木有!!好气哦,从昨晚到现在.(现在也还是一头雾水,不过照搬也会用了) 这是第一版的代 ...

  2. Android Learning:微信第三方登录

    这两天,解决了微信第三方授权登录的问题,作为一个新手,想想也是一把辛酸泪.我想着,就把我的遇到的坑给大家分享一下,避免新手遇到我这样的问题能够顺利避开. 步骤一 微信开发者平台 我开始的解决思路是,去 ...

  3. Android Learning:多线程与异步消息处理机制

    在最近学习Android项目源码的过程中,遇到了很多多线程以及异步消息处理的机制.由于之前对这块的知识只是浅尝辄止,并没有系统的理解.但是工程中反复出现让我意识到这个知识的重要性.所以我整理出这篇博客 ...

  4. Android Learning:数据存储方案归纳与总结

    前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...

  5. 02 of learning python

    01 input输入的是str类型 如果输入的是数字的话,要记得强制转换一下! 02 isdigit() 这个方法是用来检测字符串是否全部由数字组成 str.isdigit() 如果字符串只包含数字则 ...

  6. [2017-7-28]Android Learning Day7

    View动画效果 透明动画效果 旋转动画效果 移动动画效果 缩放动画效果 混合动画效果 1.透明动画效果(AlphaAnimation) 有两种方法 第一种在活动中设置,不需要xml文件 public ...

  7. [2017-7-28]Android Learning Day6

    常用控件 Spinner DatePickerDialog TimePickerDiaog RadioButton CheckBox spinner(下拉菜单) <Spinner android ...

  8. [2017-7-27]Android Learning Day5

    总结篇! 吭哧吭哧了三天,最近不断研究<第一行代码:第二版>170多页的那个新闻实践项目,虽然也没有用到数据库和一些Web爬虫的知识,新闻数据都是随机生成的字符串...... 但还是很开心 ...

  9. [2017-7-25]Android Learning Day3

    最近真的有点迷茫,感觉没有一个完整的教学体系很难进行下去,有的都是自己瞎捉摸,就跟以前ACM的时候一样,动不动就“这就是一道,水题暴力就行了”.“我们枚举一下所有的状态,找一下规律就行了”,mmp哟. ...

随机推荐

  1. CodeIgniter框架通过URL向控制器传递参数

    通过URL传递参数的方法是GET,在CodeIgnter框架中,通过URL有两种方式向控制器传递参数: 一种是键值对的形式. 一种是类似于文件路径的形式,这个时候,不是以键值对的形式了,我们只传递值. ...

  2. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  3. 迁移 VMware 虚拟机到 KVM

    虚拟机转换| VMware vCenter Converterhttps://www.vmware.com/cn/products/converter.html 迁移 VMware 虚拟机到 KVMh ...

  4. docker技术之基本命令

    我们使用基本命令之前,先来普及一下操作中使用的基本概念 镜像   image 容器   container 仓库   repository 镜像 Docker 镜像是一个特殊的文件系统,除了提供容器运 ...

  5. spring boot中log4j冲突问题和解决办法

    Spring Boot中自带了log4j日志管理.写法应该是: private static final Logger logger = Logger.getLogger(XXX.class); 而不 ...

  6. Java中List集合去除重复数据的四种方法

    1. 循环list中的所有元素然后删除重复   public static List removeDuplicate(List list) { for ( int i = 0 ; i < lis ...

  7. ResultHandler的用法

    ResultHandler,顾名思义,对返回的结果进行处理,最终得到自己想要的数据格式或类型.也就是说,可以自定义返回类型.下面通过一个例子讲解它的使用方法: 创建Goods实体类: public c ...

  8. CLOUD计算产品成本嵌套

    1.产品入库单入库的半成品A (无单价) 2.其他出库单上(共耗的)出库的半成品A(无单价) 不管在同车间还是不同车间内都是认定为嵌套的,所以可以计算2遍成本,第1遍不考虑嵌套,第2遍就能计算进去了.

  9. PS中如何把图片颜色加到字体上去

    1.在PS中的图层中,将图片置于文字层的上方,同时按ctrl+alt+g键,这样就将文字范围以外的图像给剪切掉了.见附图下方的效果. 2.最终效果如下图: 参见:https://zhidao.baid ...

  10. idea创建maven项目的一点关键

    maven中的一些概念: POM:项目对象模型(Project Object Model),是项目的一些关键元信息的集合.主要包含项目管理信息.具体的项目描述.开发小组的构 成.源代码库(如CVS)和 ...