我有一個圖形,其中光線不透明的頂部。我想根據歌曲來繪製我的弧線時間。基於歌曲持續時間公式繪製的每件曲線片不起作用
我的橢圓形是這樣的:
private void drawTimeArc(int angle, int position) {
Log.d(TAG,"DrawTimeArc " + angle + " " + position);
Paint p = new Paint();
p.setAntiAlias(true);
p.setStyle(Paint.Style.STROKE);
p.setStrokeWidth(200);
p.setColor(Color.BLACK);
p.setAlpha(10);
RectF rectF = new RectF(100, 100, 500, 500);
mCanvas.drawArc(rectF, position, angle, false, p);
drawingImageView.invalidate();
}
角度是我WIST添加和位置是在哪裏畫的位置的角度。初始位置是270,因爲那是90度。爲什麼270,因爲drawArc是順時針繪製的。
我的計算得出每第二一塊是這樣的:
long duration = TimeUnit.MILLISECONDS.toSeconds(mPlayer.getDuration());
drawTimeArc((int)(360/duration), position);
position += 360/duration;
這裏MPlayer是一個MediaPlayer的。
我認爲這個圓是360度,所以360 /持續時間給你你想每秒添加的角度。職位從270開始,並添加,所以它轉變。
問題是,我的歌完成了,我的圈子有點超過了一半。所以它只能做到183度。
有人可以調整我的公式嗎?因爲它必須適用於每首歌曲。所以360 * 2不是一個解決方案。
而我該如何計算arcDrawValue? – user1007522 2014-09-02 12:11:40
我在這個項目中創建了一個虛擬的東西,同時(arcDrawValue <360)arcDrawValue ++; progressValue =(arcDrawValue)/3.6;} – 2014-09-02 12:14:07
給我您從mPlayer.getDuration()收到的價值,這樣我就可以重現您的狀況:) – 2014-09-02 12:18:17