2016-07-20 17 views
0

我有一個lzyzsd CircleProgress視圖的問題。計算問題與「lzyzsd/CircleProgress」GitHub項目

這是我的代碼:

 CircleProgress circle= (CircleProgress)v.findViewById(R.id.circle_progress); 
     circle.setProgress(); 
     circle.setMax(); 

只有當我在SETMAX = 100值設置和setProgress = 0-100價值,我會得到一個合乎邏輯的答案(0-100%),但是當我嘗試插入其他值我會得到更奇怪的計算。 實施例:

circle.setProgress(5); 
circle.setMax(10); 

會給5%,而不是50%

circle.setProgress(700); 
circle.setMax(1000); 

會給0%insted的70%

circle.setProgress(77); 
circle.setMax(1000); 

可否也得到70%

燦有人解釋這一點,我該如何解決?

回答

0

我設法找到了解決這個問題的方法。

顯然我不得不正常化我的號碼所以這將是相對於100

SETMAX()應該是100個

setProgress()應claculated像所謂的(oldProgress * 100)/ oldMax

*此計算應計算爲浮點值(使用100.0f),然後您可以用Math.round將其舍入。

0

嘗試更改順序:第一個setMax(),然後setProgress()
因爲否則進展將上最大的默認值,即100

不管你你後設置的最大不同的值計算:如已設定的進度值。
因此,意想不到的價值(這實際上是正確的)。

+0

沒有工作。同樣的事 – ProBul

+0

你甚至沒有嘗試 –

+0

訂單的改變會改變結果,但它仍然存在錯誤的輸出arcLodging.setMax(1000); arcLodging.setProgress(77);將會給77%和 – ProBul