import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.MotionEvent;
import com.zdy.edu.R;
import com.zdy.edu.utils.JDensityUtils;
public class YAudioImage extends JLongTouchImageView {
private Bitmap srcBitmap[];
private Paint textPaint;
private String time;
private boolean isPlay;
private int index;
public YAudioImage(Context context) {
this(context, null, 0);
}
public YAudioImage(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public YAudioImage(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void init() {
super.init();
srcBitmap = new Bitmap[]{BitmapFactory.decodeResource(getResources(), R.drawable.voice),
BitmapFactory.decodeResource(getResources(), R.drawable.voice_one),
BitmapFactory.decodeResource(getResources(), R.drawable.voice_two)};
textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setTextSize(JDensityUtils.dp2px(getContext(), 18));
}
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
if (!TextUtils.isEmpty(time)) {
// 计算一下time的宽度
float textWidth = textPaint.measureText(time);
float mWidth = textPaint.measureText(String.valueOf(time.charAt(time.length() - 1)));
canvas.drawText(time, (canvas.getWidth() - textWidth + mWidth) / 2, JDensityUtils.dp2px(getContext(), 20), textPaint);
}
canvas.drawBitmap(srcBitmap[index], (canvas.getWidth() - srcBitmap[index].getWidth()) / 2, (canvas.getHeight() +
JDensityUtils.dp2px(getContext(), 20) - srcBitmap[index].getHeight()) / 2, null);
if (isPlay) {
index++;
index = index % srcBitmap.length;
postInvalidateDelayed(250);
}
}
public void setTime(String time) {
this.time = time;
invalidate();
}
public void startAudio(boolean isPlay) {
this.isPlay = isPlay;
this.index = 0;
invalidate();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
setBackgroundResource(R.drawable.color_gray);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
setBackgroundResource(R.drawable.color_voice);
break;
default:
break;
}
return super.onTouchEvent(event);
}
}
android自定义动画 画字 每隔一段时间画一张图片
最新推荐文章于 2022-05-26 21:07:04 发布