0

シークバーが4つあり、値が最初はそれぞれ25に設定されているとします。いずれかのシークバーの値を変更すると、この変更は他の3つのシークバーにも反映されます。たとえば、値を増やすと、他のすべてのシークバーが減少し、その逆も同様です。

私はこれが私が理解することができない数式を必要とすることを知っています...事前に感謝します

4

1 に答える 1

0

4つのSeekBarを合計100にし、1つを増やすと、他の3つを比例して減らす必要があるようです。

SeekBar.OnSeekBarChangeListenerhttp://developer.android.com/reference/android/widget/SeekBar.OnSeekBarChangeListener.htmlを実装する必要があるよう です

アクティビティに4つすべてへの参照を持たせ、同じリスナー(上記のインターフェイスを実装している場合はアクティビティになる可能性があります)を必要とし、このリスナーをすべてのSeekBarに設定します。OnSeekBarChangeListener.onStartTrackingTouchで、変更されているSeekBarと、その時点での4つのSeekBarすべての値を記録する必要があります。OnSeekBarChangedListener.onProgressUpdateで、元の値からの変更をパーセンテージで取得します:(新しい値-元の値)/元の値。これを3で割り(残りの3つのSeekBarに変更を分散するため)、これを他の値に適用します。次のようになります:元の値*(1-(最初のSeekBarの変更/ 3))

私の数学には間違いがあるかもしれませんが、それが一般的な考え方です。

于 2012-12-12T07:16:13.330 に答える