0
我試圖設置一個圖像視圖,顯示它的圖像超時(水平) 我現在通過擴展ImageView和onDraw工作。從CoveredImageViewImageview揭示動畫
@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());
}
}
工作一切良好,定時器/歌曲時長時很長,就像< 10分鐘,因爲它顯示得很慢,但如果歌曲像1分鐘那樣,透露不是一個流暢的動畫(圖像與設備寬度相同),它像跳躍一樣,因爲它需要以較小的量顯示整個圖像時間(希望你明白我的意思)
我知道它爲什麼做的事情,即時思考,因爲onDraw中的clipRect顯示每個像素的像素,所以如果歌曲是30秒,而設備是300px寬,則每秒跳過10px,其中10分鐘的歌曲只會是。 5px四捨五入到1px(不顯着)
林想知道如果有人有更好的方法,使其不波動。我想我也許可以使用ValueAnimator但我不太清楚如何使用它來揭示imageview。