笔记7 | 淡入淡出动画TransitionDrawable

地址

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);  
        }  
  
    }  
  
}

二.实现效果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值