笔记7 | 淡入淡出动画TransitionDrawable

来源:互联网 发布:centos nat 配置 编辑:程序博客网 时间:2024/06/08 17:46

地址

GitHub 地址:https://github.com/barretlee/online-markdown

由于最近在赶公司项目,本次就学习一个简单点的东西,说到淡入淡出动画,首先想到补间动画里面的AlphaAnimation,不过这个深浅动画只能对透明度做渐变效果,也就是只能对一个图形做深浅的颜色变换。如果我们想要从A图片逐渐变为B图片,也就是要实现淡入淡出(Fade-in and Fade-out)效果时,TransitionDrawable就派上用场了。

公众号


目录

  • 主要代码
  • 实现效果

一.代码示例;

import android.app.Activity;  import android.graphics.drawable.Drawable;  import android.graphics.drawable.TransitionDrawable;  import android.os.Bundle;  import android.view.View;  import android.view.View.OnClickListener;  import android.view.animation.AlphaAnimation;  import android.widget.Button;  import android.widget.ImageView;    public class MainActivity extends Activity implements OnClickListener {        private ImageView iv_alpha;      private AlphaAnimation alphaAnimation;      private TransitionDrawable transitionDrawable;            @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            Button btn_play1 = (Button) findViewById(R.id.btn_play1);          Button btn_play2 = (Button) findViewById(R.id.btn_play2);          btn_play1.setOnClickListener(this);          btn_play2.setOnClickListener(this);          iv_alpha = (ImageView) findViewById(R.id.iv_alpha);          //一开始先设置透明,这样图片不会显示,等点击按钮时再显示          iv_alpha.setAlpha(0.0f);          alphaAnimation = new AlphaAnimation(0.0f, 1.0f);          alphaAnimation.setDuration(3000);    //深浅动画持续时间          alphaAnimation.setFillAfter(true);   //动画结束时保持结束的画面      }        @Override      public void onClick(View v) {          if (v.getId() == R.id.btn_play1) {              iv_alpha.setImageResource(R.drawable.alpha_begin);              iv_alpha.setAlpha(1.0f);              iv_alpha.setAnimation(alphaAnimation);              alphaAnimation.start();          } else if (v.getId() == R.id.btn_play2) {              //淡入淡出动画需要先设置一个Drawable数组,用于变换图片              Drawable[] drawableArray = {                      getResources().getDrawable(R.drawable.alpha_begin),                      getResources().getDrawable(R.drawable.alpha_end)                      };              transitionDrawable = new TransitionDrawable(drawableArray);              iv_alpha.setImageDrawable(transitionDrawable);              transitionDrawable.startTransition(3000);          }        }    }

二.实现效果



原创粉丝点击