微信聊天界面点击语音时,喇叭的动画效果,下面上代码,该类是控制背景变化的工具类,不涉及语音录制和播放。 图片资源: 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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。