zoukankan      html  css  js  c++  java
  • [2017-8-02]Android Learning Day8

    自定义动画效果

    新建一个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));

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

  • 相关阅读:
    RFID亮灯电子标签在仓储管理中的应用
    漫画:寻找股票买入卖出的最佳时机(动态规划)
    JAVA深入解析-36个话题-Two
    一行代码让训练速度提升2倍,飞桨自动混合精度技术详解
    追源码的平凡之路
    看完这篇,你也是字符编码大神!
    微服务的熔断原理与实现
    经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
    一文看懂人机对话
    「Spring Boot 2.4 新特性」一键构建Docker镜像
  • 原文地址:https://www.cnblogs.com/liwenchi/p/7275257.html
Copyright © 2011-2022 走看看