2016-07-20 15 views
0

私はlzyzsd CircleProgressビューに問題があります。"lzyzsd/CircleProgress" GitHubプロジェクトの計算の問題

これは私のコードです:私はsetMax = 100値とでsetProgressで設定した場合にのみ= 0-100値Iは、論理的な答え(0〜100%)を取得します

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

が、私がしようとすると、他の値を挿入する私は計算が面倒になるでしょう。 例:

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

は5%の代わりに、

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

0%を与えるだろうが、70%のinsted 50%を与える

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

も与える70%

缶誰かがこれを説明してください。どうすればいいですか?

答えて

0

私はこの問題の解決策を見つけることができました。

は、どうやら私はそれが100

でsetProgressでなければなりません100

setMax()での相対的となりますので、自分の番号を正規化しなければならなかった()SO-のようclaculatedする必要があります(oldProgress * 100)/ oldMax

*この計算はfloat値(100.0fを使用)に計算する必要があり、Math.roundで丸めることができます。

0

注文を変更してください:最初にsetMax()、次にsetProgress()。既に設定されて進捗値:特に進展はあなたあなたが後に別の値MAXを設定した場合、100

どんなにで最大のデフォルト値、上で計算されますので

したがって、予期しない値(実際には正しい)です。

+0

didn't work。同じこと – ProBul

+0

あなたも試したことがありません –

+0

この順番の変更は結果を変えますが、依然として間違った出力を残します。arcLodging.setMax(1000); arcLodging.setProgress(77); 77%と – ProBul