微信聊天界面点击语音时,喇叭的动画效果,下面上代码,该类是控制背景变化的工具类,不涉及语音录制和播放。 图片资源: package xxx;import android.os.Handler;import android.widget.ImageView;
          微信聊天界面点击语音时,喇叭的动画效果,下面上代码,该类是控制背景变化的工具类,不涉及语音录制和播放。
图片资源:



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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。
