PDA

View Full Version : قرار دادن یک مقدار min برای seekbar



zahra.mf
یک شنبه 28 اردیبهشت 1393, 10:44 صبح
سلام
من یه seekbar دارم که سایز متن و با اون تنظیم میکنم می خوام یه مقدار به عنوان min تعیین کنم که دیگه سایز متن از اون کمتر نشه و وقتی کاربر برنامه رو برای بار اول باز میکنه اون سایز به عنوان سایز اوله متن باشه

final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1); final SharedPreferences sharedPref = getSharedPreferences("sharedPref",Context.MODE_PRIVATE);

sk.setProgress(sharedPref.getInt("size",0));




sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

//Toast.makeText(getBaseContext(), String.valueOf(p), Toast.LENGTH_SHORT).show();
}

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
if (fromUser)
sharedPref.edit().putInt("size", progress).commit();

t1.setTextSize(progress);
}


@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub

}
});
}

#root#
یک شنبه 28 اردیبهشت 1393, 10:52 صبح
راه اول : فرض کنید بیشترین مقدار رو 10 قرار دادین و میخوایین بین 20 و 30 مقدار خروجی داشته باشین باید تو متد onProgressChanged وقتی مقدار progress رو میگیرین اونو با 20 جمع کنید. یعنی اگه کاربر ببره رو 5 شما مقدار 25 رو خواهید گرفت و ...

راه دوم : کتابخونه (https://github.com/joaocsousa/DoubleSeekBar)

zahra.mf
یک شنبه 28 اردیبهشت 1393, 11:01 صبح
توی راه اول منظورتون اینه این کار و انجام بدم؟
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { // TODO Auto-generated method stub
if (fromUser)
sharedPref.edit().putInt("size", progress+14).commit();

t1.setTextSize(progress+14);
}
تغییری نکرد! هنوز هم برنامه که برای بار اول باز میشه مقدار seekbar صفر هست!

dasssnj
یک شنبه 28 اردیبهشت 1393, 11:01 صبح
خب یه کاری کن مثل اینکه مثلا مکس رو بزار 80 و هرچی کاربر وارد کرد با 20 جمع کن.
یعنی اگه کاربر سیک بار را تا اخر کم کند 0+20 بشه و سایز متن 20 بشه و اگه مثلا سیک بار 50 بود 70 بشه و ...
اینطوری مین سیک بار میشه مثلا 20 و مکس میشه 100

int mySize;
final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1); final SharedPreferences sharedPref = getSharedPreferences("sharedPref",Context.MODE_PRIVATE);

sk.setProgress(sharedPref.getInt("size",0));
sk.setMax(80);



sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

//Toast.makeText(getBaseContext(), String.valueOf(p), Toast.LENGTH_SHORT).show();
}

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {

// TODO Auto-generated method stub
mySize = 20+progress;
if (fromUser)
sharedPref.edit().putInt("size", mySize).commit();

t1.setTextSize(mySize);
}


@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub

}
});
}