آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییر سایز متن با استفاده از seek bar(حل شد)

Bahamin Dadras  10 سال پیش  8 سال پیش
+4 0

سلام خدمت دوستان عزیز...

اقا من کلی xml دارم که تو هرکدوم کلی text view هست...

حالا میخوام هرکدوم از اونارو با یک سیک بار داخل خوده همون xml  تغییر سایز بدم.

یه راه حل یا یک کده کامل بهم میدین.

اینم بگم که تمامه text view هام رو از یک کلاس دیگه تعریف کردم.(برای تغییر فونت)به شکل زیر:

 	public class MyTextView extends TextView{

	    public MyTextView(Context context, AttributeSet attrs, int defStyle) {
	        super(context, attrs, defStyle);
	        initialize();
	    }

	    public MyTextView(Context context, AttributeSet attrs) {
	        super(context, attrs);
	        initialize();
	    }

	    public MyTextView(Context context) {
	        super(context);
	        initialize();
	    }

	    private void initialize() {
	        if (!isInEditMode()) {
	        	Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font/nas.ttf");
	            setTypeface(tf);

	        }
	       
			
	    }
	    }

 

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
h_r_v  10 سال پیش
+8 0

یک کلاس بسازید به اسم AdvanceSetting که این محتویات رو داره :

 public class AdvanceSetting extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.advance_setting);
final SeekBar seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
Button btnSave = (Button) findViewById(R.id.save);
final TextView txtNemune = (TextView) findViewById(R.id.txtNemune);
int size = G.preferences.getInt("FONT_SIZE", 20);
int size1 = size - 20;
seekBar1.setProgress(size1);
txtNemune.setTextSize(size);
seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}

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

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
int value = seekBar1.getProgress();
int value1 = value + 20;
txtNemune.setTextSize(value1);

}
});
btnSave.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
int value = seekBar1.getProgress();
int value1 = value + 20;
SharedPreferences.Editor editor = G.preferences.edit();
editor.putInt("FONT_SIZE", value1);
editor.commit();
}
});

}
}

advance_setting.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/reletive1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/pattern"
android:orientation="vertical" >

<TextView
android:id="@+id/txtNemune"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center"
android:text="نمونه"
android:textColor="#ffffff" />

<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="20" />

<Button
android:id="@+id/save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ذخیره" />

</LinearLayout>

فایل G.java:

 public class G extends Application {

public static Context context;
public static SharedPreferences preferences;


@Override
public void onCreate() {
super.onCreate();

context = getApplicationContext();
preferences = PreferenceManager.getDefaultSharedPreferences(context);
}
}

این کد ها رو در کنار جایی که Typeface تعریف کردید قرار بدید :

 int size = G.preferences.getInt("FONT_SIZE", 20);
setTextSize(size);

با اینکار، سایز تکستاتون رو میتونید از 20 تا 40 sp تغییر بدید :)

0 0
اقا نیما دمت گرم... (10 سال پیش)
0 0
چاکرم (10 سال پیش)
0 0
سلام منظورتون از Typeface چیه؟ (10 سال پیش)
0 0
مشکل اینه الان به این خط ایراد میگیره. int size = G.preferences.getInt("FONT_SIZE", 20); (8 سال پیش)
+1 0
Caused by: java.lang.NullPointerException (8 سال پیش)
0 0
وقتی که برنامه اجرا میشه و میخوام داخل اکتیویتی تنظیمات برم این ارور میاد. البته اگه کد داخل typeface رو قرار بدم کلا برنامه کرش میکنه (8 سال پیش)
پاسخ به سوال 
یگانه  10 سال پیش
+1 0

تشکر من تست کردم جواب داد

0 0
اره...کار آقا نیما oke (10 سال پیش)
0 0
(10 سال پیش)
پاسخ به سوال 
یگانه  10 سال پیش
0 0

من میخام این کد نو یک Dialog باز بشه ولی خطا میده چجوری اینکارو کنم دمت گرم معطلم

0 0
اسم پکیج نیمت + (.) و اسم کلاس textview که ساختیو بذار جای text view که میخوایی اندازشو تغییر بدی......مثلاcom.shahkar.app.mytextview رو به جای text view میذاری (10 سال پیش)
پاسخ به سوال 
یگانه  10 سال پیش
0 0

من میخام این کد نو یک Dialog باز بشه ولی خطا میده چجوری اینکارو کنم دمت گرم


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .