2016-03-01 81 views
4

我使用庫:https://github.com/Ross-Gibson/SeekArc。 和我有奇怪的情況。 這是XML代碼:SeekArc始終是圓圈

<com.triggertrap.seekarc.SeekArc 
    android: id = "@+id/seekArcRestPauseTime" 
    android: layout_width = "match_parent" 
    android: layout_height = "wrap_content" 
    android: paddingLeft = "@dimen/fit_2BU" 
    android: paddingTop = "@dimen/fit_3BU" 
    seekarc: rotation = "180" 
    seekarc: startAngle = "50" 
    seekarc: sweepAngle = "260" 
    seekarc: touchInside = "true" 
    seekarc: arcWidth = "@dimen/fit_BU" 
    seekarc: progressWidth = "@dimen/fit_BU" 
    seekarc: enabled = "false" 
    seekarc: roundEdges = "true" 
    seekarc: arcColor = "@color/blue_heart" 
    seekarc: progressColor = "@color/yellow_heart"/> 

,你可以看到我添加由startAngle和sweepAngle。在我的三星s3與Android 4.3 seekarc看起來不錯,但在三星s6與android 5.1.1我seekarc總是顯示爲圓形,沒有開始角度。當我在1上設置進度時,尋找弧線看起來不錯,但是當我設置0角度消失並再次看到整個弧線時。任何想法爲什麼?

回答

0

使用這個庫,他解決了這個bug在他的書房 https://github.com/lzyzsd/CircleProgress

它將工作正常,如果不是,請讓我知道,一定會給你的編輯我的版本......

希望對你有效。

+0

你已經更新了是不是有手動刷卡庫。 – Bethan

+0

能否請你解釋一下這個問題,因爲它在Android 7.0 Nougat Nexus 6上運行良好..... – Ashish

+0

我無法將弧從一個位置掃到另一個位置。 – Bethan

3

我認爲我得到了很長一段時間的思考後的溶液,

在你SeekArc文件中,有方法稱爲

private void updateProgress(int progress, boolean fromUser) { 
    if (progress == INVALID_PROGRESS_VALUE) { 
     return; 
    } 
    //This is the key area to block the looping [Starts] 
    if (mProgress == mMax && progress != (mProgress - 1)) { 
     return; 
    } 
    if (mProgress == mMin && progress != (mProgress + 1)) { 
     return; 
    } 
    // This is the key area to block the looping [Ends] 
    progress = (progress > mMax) ? mMax : progress; 
    progress = (progress < 0) ? 0 : progress; 
    mProgress = progress; 

    if (mOnSeekArcChangeListener != null) { 
     mOnSeekArcChangeListener.onProgressChanged(this, progress, 
       fromUser); 
    } 

    mProgressSweep = (float) progress/mMax * mSweepAngle; 

    updateThumbPosition(); 

    invalidate(); 
} 
+0

wowww ..它真的很棒! – HsRaja