[Android笔记6]之淡入淡出动画TransitionDrawable

地址

GitHub 地址:http://blog.csdn.net/xiangyong_1521/article/details/77888295

由于最近在赶公司项目,闲余时间不是很充沛,本节就实现一个简单的动画吧。 说到淡入淡出动画,首先想到补间动画里面的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);
        }
    }
}

二.实现效果


交作业,睡觉

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-09-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏古时的风筝

使用ViewPager+Fragment实现选项卡切换效果

实现效果 本实例主要实现用ViewPage和Fragment实现选项卡切换效果,选项卡个数为3个,点击选项卡或滑动屏幕会切换Fragment并实现选项卡下方下边...

3245
来自专栏Android知识点总结

5-VVI-材料设计之ToolBar

3.为测试colorAccent,activity_main.xml中加入EditText:

1174
来自专栏木头编程 - moTzxx

跑马灯 TextView效果设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

612
来自专栏向治洪

achartengine之折线图

问题在文章的最后,大致说来就是折线图,如果点的个数大于3个的时候,不是所有的点都显示对应的值的,这是为什么呢,本来以为是小问题,但两天了还没找到原因) 将前...

20010
来自专栏GIS讲堂

打造属于自己的安卓menu

看下面的menu菜单,是原装的菜单,好丑陋哦,类似于小编这么爱美的人来说,纯粹就是天大的打击,接受不起。于是,小编就发奋图强,努力,努力,再努力,终于,将菜单改...

734
来自专栏Android干货

关于安卓开始实现最简单地获取系统时间

2608
来自专栏james大数据架构

使用代码为textview设置drawableLeft

xml中的textView中设置android:drawableLeft: <TextView          android:id="@+id/bookTi...

1858
来自专栏吴小龙同學

Fragment里更改Activity菜单

1525
来自专栏移动开发面面观

CoordinatorLayout的最简入门

1128
来自专栏Android干货

安卓开发_慕课网_百度地图_实现定位

34711

扫码关注云+社区