温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android怎么实现微信聊天语言点击喇叭动画效果

发布时间:2021-04-17 09:41:59 来源:亿速云 阅读:180 作者:小新 栏目:移动开发

这篇文章将为大家详细讲解有关Android怎么实现微信聊天语言点击喇叭动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

微信聊天界面点击语音时,喇叭的动画效果,下面上代码,该类是控制背景变化的工具类,不涉及语音录制和播放。

图片资源:

Android怎么实现微信聊天语言点击喇叭动画效果

Android怎么实现微信聊天语言点击喇叭动画效果

Android怎么实现微信聊天语言点击喇叭动画效果

package xxx;

import android.os.Handler;
import android.widget.ImageView;

import xxx.R;

import java.util.Timer;
import java.util.TimerTask;

public class VoicePlayingBgUtil {

  private Handler handler;

  private ImageView imageView;

  private ImageView lastImageView;

  private Timer timer = new Timer();
  private TimerTask timerTask;

  private int i;

  private int modelType = 1;//类型

  private int[] leftVoiceBg = new int[] { R.drawable.gray1, R.drawable.gray2, R.drawable.gray3 };
  private int[] rightVoiceBg = new int[] { R.drawable.green1, R.drawable.green2, R.drawable.green3 };
  private int[] collectVoiceBg = new int[] { R.drawable.collect_voice_1, R.drawable.collect_voice_2, R.drawable.collect_voice_3 };

  public VoicePlayingBgUtil(Handler handler) {
    super();
    this.handler = handler;
  }

  public void voicePlay() {
    if (imageView == null) {
      return;
    }
    i = 0;
    timerTask = new TimerTask() {

      @Override
      public void run() {
        if (imageView != null) {
          if (modelType == 1) {
            changeBg(leftVoiceBg[i % 3], false);
          }else if(modelType==2){
            changeBg(rightVoiceBg[i % 3], false);
          }else if(modelType==3){
            changeBg(collectVoiceBg[i % 3], false);
          }
        }
        else {
          return;
        }
        i++;
      }
    };
    timer.schedule(timerTask, 0, 500);
  }

  public void stopPlay() {
    lastImageView = imageView;
    if (lastImageView != null) {
      switch (modelType) {
        case 1:
          changeBg(R.drawable.gray3, true);
          break;
        case 2:
          changeBg(R.drawable.green3, true);
          break;
        case 3:
          changeBg(R.drawable.collect_voice_3, true);
        default:
          changeBg(R.drawable.gray3, true);
          break;
      }
      if (timerTask != null) {
        timerTask.cancel();
      }
    }
  }

  private void changeBg(final int id, final boolean isStop) {
    handler.post(new Runnable() {
      @Override
      public void run() {
        if (isStop) {
          lastImageView.setImageResource(id);
        }
        else {
          imageView.setImageResource(id);

        }
      }
    });
  }

  public void setImageView(ImageView imageView) {
    this.imageView = imageView;
  }

  public void setModelType(int modelType) {
    this.modelType = modelType;
  }

}

调用方法

 playBgUtil = new VoicePlayingBgUtil(handler);
 playBgUtil.stopPlay();
 playBgUtil.voicePlay();

关于“Android怎么实现微信聊天语言点击喇叭动画效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI