【发布时间】:2014-10-30 19:41:36
【问题描述】:
我正在尝试设置一个显示图像超时的图像视图(水平) 我现在通过扩展 ImageView 和 onDraw 让它工作。取自CoveredImageView
@Override
protected void onDraw(Canvas canvas) {
canvas.getClipBounds(mRect);
int i = round((float) mRect.width() * mPercent);
mRect.right = i + mRect.left;
canvas.clipRect(mRect);
super.onDraw(canvas);
invalidate();
}
mPercent 是我想要显示的数量,我将它连接到音乐播放器和搜索栏并像这样显示
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
revealImg.updatePercent((float) progress / (float) seekBar.getMax());
}
}
当计时器/歌曲持续时间长(如
我知道它为什么这样做,我在想是因为 onDraw 中的 clipRect 显示每个像素的像素,所以如果歌曲是 30 秒并且设备是前 300 像素宽,它每秒跳 10 像素,而 10 分钟的歌曲只会是.5px 四舍五入到 1px(不那么明显)
我想知道是否有人有更好的方法让它不波涛汹涌。我想我可以使用ValueAnimator,但我不太确定如何使用它来显示图像视图。
【问题讨论】: