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

 更新时间:2018年08月29日 16:53:53   投稿:lijiao  
这篇文章主要为大家详细介绍了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;//结束线程

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

相关文章

  • adb push命令向设备传输文件的操作步骤

    adb push命令向设备传输文件的操作步骤

    这篇文章主要介绍了adb push命令向设备传输文件的操作步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Android 内存溢出和内存泄漏的问题

    Android 内存溢出和内存泄漏的问题

    这篇文章主要介绍了Android 内存溢出和内存泄漏的问题的相关资料,需要的朋友可以参考下
    2017-03-03
  • 详解Android中Dialog的使用

    详解Android中Dialog的使用

    在Android中经常要使用Dialog来实现一些提示以及一些特殊的效果,这里总结一些常用的Dialog的实践,非常具有实用价值,需要的朋友可以参考下。
    2017-01-01
  • Kotlin Flow常见场景下的使用实例

    Kotlin Flow常见场景下的使用实例

    这篇文章主要为大家介绍了Kotlin Flow常见场景下的使用实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android ActionBar完全解析使用官方推荐的最佳导航栏(下)

    Android ActionBar完全解析使用官方推荐的最佳导航栏(下)

    这篇文章主要介绍了Android ActionBar完全解析使用官方推荐的最佳导航栏(下) ,需要的朋友可以参考下
    2017-04-04
  • Android GridView不改变背景色实现网格线效果

    Android GridView不改变背景色实现网格线效果

    这篇文章主要介绍了Android GridView不改变背景色实现网格线效果,需要的朋友可以参考下
    2016-03-03
  • Android MediaPlayer音频播放器封装示例浅析

    Android MediaPlayer音频播放器封装示例浅析

    Android提供了许多方法来控制播放的音频/视频文件和流。其中该方法是通过一类称为MediaPlayer。Android是提供MediaPlayer类访问内置的媒体播放器的服务,如播放音频,视频等为了使用MediaPlayer,我们要调用这个类的静态create()方法
    2023-04-04
  • Android使用GridView实现表格分割线效果

    Android使用GridView实现表格分割线效果

    这篇文章主要为大家详细介绍了Android使用GridView实现表格分割线效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Android音视频开发只硬件解码组件MediaCodec讲解

    Android音视频开发只硬件解码组件MediaCodec讲解

    在Android开发中提供了实现音视频编解码工具MediaCodec,针对对应音视频解码类型通过该类创建对应解码器就能实现对数据进行解码操作。本文通过示例详细讲解了MediaCodec的使用,需要的可以参考一下
    2023-01-01
  • Android仿支付宝、京东的密码键盘和输入框

    Android仿支付宝、京东的密码键盘和输入框

    这篇文章主要介绍了利用Android如何模仿支付宝、京东的密码键盘和输入框,本文是将键盘和输入框分开来写,可以根据需求在各个地方使用,同时处理了大量逻辑,方便快速开发。感兴趣的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10

最新评论