2016-03-01 79 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