PDA

View Full Version : اعمال seekBar بر روی تمام متن ها



zahra.mf
یک شنبه 10 شهریور 1392, 13:13 عصر
سلام من seekBar و تو برنامه ام گذاشتم و تغییراتش روی متنی که تو xml اش هست اعمال میشه ولی نمیدونم چکار کنم تا تغییرات سایز روی متن هایی که توی xml های دیگه برنامه ام هستن اعمال بشه

final TextView t1=(TextView) findViewById(R.id.textView1);
final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1);
sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
if(p<18)
{
p=18;
sk.setProgress(p);
}
Toast.makeText(getBaseContext(), String.valueOf(p), Toast.LENGTH_SHORT).show();
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
p=progress;
t1.setTextSize(p);
}
});
}

sajadpm
یک شنبه 10 شهریور 1392, 14:24 عصر
با سلام و خسته نباشید

شا می توانید از sharedpreferences استفاده کنید ; سایز مورد نظر رو از seekbar دریافت کرده و در sharedpreference ذخیره کنید هر کجا که لازم بود اون مقدار رو از sharedpreference بگیرید و استفاده کنید اگر لازم بود به صورت نمونه براتون قرار بدهم

zahra.mf
یک شنبه 10 شهریور 1392, 14:39 عصر
ممنون میشم اگه یه نمونه بذارید

abbasalim
یک شنبه 10 شهریور 1392, 18:29 عصر
سلام
خیلی خلاصه :


SharedPreferences size;
int sh=0 ;

size = getSharedPreferences("size", 0);
sh = size.getInt("size?", 20);




با کد بالا مقدار SharedPreferences رو میخونی (20 یعنی دفعه اول که کاربر وارد برنامه میشه و هنوز سایزه خاصی رو تنظیم نکرده بصورت پیش فرض مقدار رو 20 قرار بده) و کد زیر SharedPreferences رو مقدار دهی میکنی توجه داشته باش هر دو "size?" هستن .



SharedPreferences.Editor ed =size.edit();
ed.putInt("size?", sh);
ed.commit();

zahra.mf
یک شنبه 10 شهریور 1392, 21:59 عصر
مگه نباید مقدارش و از seekBar بگیره؟

hamyd_reza
یک شنبه 10 شهریور 1392, 22:02 عصر
----------

zahra.mf
یک شنبه 10 شهریور 1392, 22:09 عصر
اگه میشه کسی یه کم بیشتر توضیح بده ممنون میشم:ناراحت:

abbasalim
یک شنبه 10 شهریور 1392, 22:11 عصر
اون علامت سوال ها واسه چیه؟
خوب مقدارش رو از هرجا خواستین بدین
مثلا من مقداری رو که از کاربر میگیرم رو گذاشتم داخل int sh (قرار نیست که کله مثال رو بزارم فرض کردم شما مقداری رو کاربر داده رو گذاشتین داخل این متغیر)
علامت ؟ چیزه خاصی نیست همینجوری گذاشتم میتونید نزارید اصلا هرچی دوست دارین بزاری "ali" یا "hasan" یا هرچی که دوست دارین

zahra.mf
یک شنبه 10 شهریور 1392, 22:29 عصر
اگه بخوام این سایز و تو یه کلاس دیگه و برای یه xml دیگه استفاده کنم(سایز براش اعمال بشه)
چی کار باید بکنم؟(چی و باید فراخوانی کنم؟)

abbasalim
یک شنبه 10 شهریور 1392, 23:24 عصر
اگه بخوام این سایز و تو یه کلاس دیگه و برای یه xml دیگه استفاده کنم(سایز براش اعمال بشه)
چی کار باید بکنم؟(چی و باید فراخوانی کنم؟)




سلام
خیلی خلاصه :


SharedPreferences size;
int sh=0 ;

size = getSharedPreferences("size", 0);
sh = size.getInt("size?", 20);




با کد بالا مقدار SharedPreferences رو میخونی (20 یعنی دفعه اول که کاربر وارد برنامه میشه و هنوز سایزه خاصی رو تنظیم نکرده بصورت پیش فرض مقدار رو 20 قرار بده)






پس باید این کد رو داخل هرکلاسی که خواستی بزاری

sajadpm
دوشنبه 11 شهریور 1392, 12:49 عصر
کد زیر رو بررسی کنید :
MainActivity.java
public class MainActivity extends Activity {
private Button btn1;
private SeekBar seekBarProgress;
public EditText ed1;
private final String TEXT_VALUE_KEY="textvalue";
private final String FONT_SIZE_KEY="fontsize";
final String MyPref="preference";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.start);
ed1=(EditText)findViewById(R.id.editText1);
seekBarProgress = (SeekBar)findViewById(R.id.SeekBarTestPlay);
btn1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

SharedPreferences pref=getSharedPreferences(MyPref,MODE_PRIVATE);
SharedPreferences.Editor editor=pref.edit();
editor.putFloat(FONT_SIZE_KEY,ed1.getTextSize());
editor.commit();

}

});

SharedPreferences prefs=getSharedPreferences(MyPref, MODE_PRIVATE);

final float fontsize=prefs.getFloat(FONT_SIZE_KEY, 12);

seekBarProgress.setProgress((int) fontsize);

ed1.setText(prefs.getString(TEXT_VALUE_KEY, ""));

ed1.setTextSize(seekBarProgress.getProgress());

seekBarProgress.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {


public void onStopTrackingTouch(SeekBar arg0) {

// TODO Auto-generated method stub

}

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

}

public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
ed1.setTextSize(fontsize);
}
});
}
}
فایل activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical" >

<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="startPlayerBtn" />

<EditText

android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_weight="0.6"
android:ems="10" ></EditText>

<SeekBar
android:id="@+id/SeekBarTestPlay"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>