Est-ce que quelqu'un sait comment définir la valeur minimale d'un SeekBar? Est-ce fait dans la mise en page XML ou dois-je le définir par programme?
Fondamentalement, je dois changer ma valeur minimale de 0 à 0,2
Est-ce que quelqu'un sait comment définir la valeur minimale d'un SeekBar? Est-ce fait dans la mise en page XML ou dois-je le définir par programme?
Fondamentalement, je dois changer ma valeur minimale de 0 à 0,2
Voici ce que j'utilise pour obtenir android:max
pour une plage max / min pour un SeekBar
.
mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressChanged = minimumValue;
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressChanged = minimumValue+ progress;
}
});
Ainsi, vous obtiendrez la plage minimum to minimum+max
;
Pour définir la valeur maximale en xml, utilisez max=(desiredMax-min)
;
Le min de la valeur doit être à 0 pour la SeekBar objet en Java (c'est à dire, il ne peut pas être changé), mais c'est la façon d'obtenir l'apparence et la performance.
Supposons que vous voulez que votre min à 5 et le max à 100...
Donc, vous avez une gamme de 95, de sorte que vous devrez configurer la SeekBar avec une valeur maximale de 95
.
Si votre seekbar dispose d'une INTERFACE utilisateur étiquettes, vous ferait 5
(min) et 100
(max).
Ainsi, la mise en page XML serait quelque chose comme...
<LinearLayout
android:id="@+id/sampleSizeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/batchDurationSecsLayout"
android:orientation="vertical"
android:visibility="visible" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sample_size" />
<SeekBar
android:id="@+id/sampleSizeSeekBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="95" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="visible" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:gravity="left"
android:text="5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="right"
android:text="100" />
</RelativeLayout>
</LinearLayout>
Alors maintenant, vous pouvez introduire l' 5
de correction, comme ça...
final SeekBar sampleSizeSeekBar = (SeekBar)findViewById(R.id.sampleSizeSeekBar);
final int sampleSizeSeekBarCorrection = 5; //e.g., 95 <--> 100
int realValueFromPersistentStorage = appObj.getSampleSize(); //Get initial value from persistent storage, e.g., 100
sampleSizeSeekBar.setProgress(realValueFromPersistentStorage - sampleSizeSeekBarCorrection); //E.g., to convert real value of 100 to SeekBar value of 95.
sampleSizeSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
int val = sampleSizeSeekBar.getProgress();
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
val = progress + sampleSizeSeekBarCorrection; //e.g., to convert SeekBar value of 95 to real value of 100
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
try {
appObj.saveSampleSize(val); //Save real value to persistent storage, e.g., 100
appObj.makeToast("Sample size set to " + val);
}
catch(Exception e) {
Log.e(LOG_TAG, "Error saving sample size", e);
appObj.makeToast("Error saving sample size: " + e);
}
}
});
Cette solution permettra de donner à votre seekbar la bonne min, max et l'échelle sur l'INTERFACE, et la position de la commande de ne pas "sauter" vers la droite si l'utilisateur fait glisser tout le chemin à gauche.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.