Android使用TransitionDrawable渐变切换多张图片

使用TransitionDrawable渐变切换多张图片,供大家参考,具体内容如下

1、定义变量

private int change = 0;//记录下标
private int[] ids = new int[]{R.drawable.anim_one, R.drawable.anim_two, R.drawable.anim_three};
private Drawable[] drawables;//图片集合
private Thread mThread;//线程
private boolean mThreadFlag = true;//线程结束标志符

2、填充图片

private void initDrawableView() {
    //填充图片
    drawables = new Drawable[ids.length];
    for (int i = 0; i < ids.length; i++) {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        drawables[i] = getDrawable(ids[i]);
      } else {
        drawables[i] = getResources().getDrawable(ids[i]);
      }
    }
  }

3、定义hander

private Handler mHandler = new Handler(new Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
      int duration = msg.arg1;
      TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{drawables[change % ids.length],
          drawables[(change + 1) % ids.length]});
      change++;//改变标识位置
      repeatPlay.setBackground(transitionDrawable);
      transitionDrawable.startTransition(duration);
      return false;
    }
  });

4、开启线程发送消息,让transition一直在改变

private class MyRunnable implements Runnable {
    @Override
    public void run() {
      //这个while(true)是做死循环
      while (mThreadFlag) {
        int duration = 5000;//改变的间隔
        Message message = mHandler.obtainMessage();
        message.arg1 = duration;
        mHandler.sendMessage(message);
        try {
          Thread.sleep(duration);
          //隔duration秒发送一次
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
  }

5、在onCreate()中开启线程,改变transition,切换图片

mThread = new Thread(new MyRunnable());
mThread.start();

6、在onDestroy()中结束线程

mThreadFlag = false;//结束线程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android模仿To圈儿个人资料界面层叠淡入淡出显示效果

    前几天做的一个仿To圈个人资料界面的实现效果 下面是To圈的效果Gif图: 做这个东西其实也花了一下午的时间,一开始思路一直没理清楚,就开始盲目的去做,结果反而事倍功半. 以后要吸取教训,先详细思考清楚其中的逻辑关系,然后再开始动手写代码,这样比较容易理顺. 可以看到实现这个效果还是不难的,得分成以下三个步骤: 1:首先要有一个可拖动的详细资料布局(下半部分). 2:上半部分可跟随移动. 3:标题栏由隐藏到显示. 涉及到的技术点有: 1:屏幕像素密度DP转化. 2:自定义视图的OnTouchLi

  • Android编程单击图片实现切换效果的方法

    本文实例讲述了Android编程单击图片实现切换效果的方法.分享给大家供大家参考,具体如下: 新建一个Android项目,命名为FrameLayout 此实例主要操作src文件夹下的MainActivity.Java类文件和res/layout下的activity_main.xml布局文件 1.布局主页面代码activity_main.xml↓ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • Android实现滑动屏幕切换图片

    本文实例为大家分享了Android实现滑动屏幕切换图片的具体代码,供大家参考,具体内容如下 activity_main.xml 文件代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.and

  • Android开发之使用ViewPager实现图片左右滑动切换效果

    Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~: 使用了3个xml文件作为ViewPager的滑动page,布局都是相同的,如下只展示其中之一: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

  • Android自定义ImageView实现点击两张图片切换效果

    笔者在做一个项目中遇到的一个小阻碍,于是就实现了这个ImageView达到开发需求 情景需求 > 点击实现图片的切换 可能有人会说了,这还不简单?为ImageView设置点击事件,然后通过重写的onClick(View v)方法判断定义的某一个flag进行图片的切换,伪代码如下: private boolean flag; public void onClick(View v){ if(flag){ mImageView.setImageResource(R.drawable.xx1); }el

  • 使用TransitionDrawable实现多张图片淡入淡出效果

    欢迎界面想做出广告页自动轮播的效果,图片切换的方式用淡入淡出的方式.这个在h5页面很容易就实现了,但是在android界面中,很容易就想到了动画animation动画来实现,但是发现使用动画的话,这种方式看起来不会自然,因为在调用statAnimation的时候因为图片已经显示了,这样再硬生生的播放一次动画其实会导致细微的闪烁效果.后来发现android中自带了TransitionDrawable类可以很轻松地实现这个效果,但是会有局限性. 先上效果图: 一.两张图片的切换效果,轻松实现 //讲

  • Android应用中图片浏览时实现自动切换功能的方法详解

    先给最终效果图: 当我们在最下边的gallery中切换图片时,上面的大图片会自动切换,切换时有动画效果哦,很简单的一个程序,有待完善更多的功能! activity代码: package cn.com.chenzheng_java; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.V

  • Android中ViewPager组件的基本用法及实现图片切换的示例

    ViewPager是android-support-v4.jar包里的组件.在布局文件里标签需要连包名一起 写全称<android.support.v4.view.ViewPager /> 基本用法 ViewPager的基本用法我概括为三步 第一步 在主布局文件里放一个ViewPager组件 第二步 为每个页面建立布局文件,把界面写好 第三步 在主Activity里获取ViewPager组件,并为它设定Adapter. Adapter详细讲讲,ViewPager对应的Adapter继承自Pag

  • Android实现图片轮播切换实例代码

    利用Android的ViewFlipper和AnimationUtils实现图片带有动画的轮播切换,其中当点击"上一张"图片时,切换到上一张图片:当点击"下一张"图片时,切换到下一张图片.其效果图如下: 设置布局文件,其内容如下: activity_image_flipper_shade.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm

  • android控件实现多张图片渐变切换

    本来项目是用的viewpager实现的轮播滚动,但是客户觉得轮播的效果太大众化了,于是就要我们改成渐变切换的效果.听到这需求,我最先想到是给viewpager设置切换动画,但是无论怎么设置动画,都要手动切换的时候才有效果.于是我就自定义了一个控件,利用淡入淡出动画实现了这效果,还是先上效果图,没效果图说再多也没用. public class Gradient extends RelativeLayout { private List<ImageView> imageViews; private

随机推荐