بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
Bahamin Dadras 12 سال پیش
آخرین تغییر: 10 سال پیش

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

اقا من کلی 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 12 سال پیش

یک کلاس بسازید به اسم 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 تغییر بدید :)

نظرات

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

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

نظرات

یگانه 12 سال پیش

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

نظرات

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

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

نظرات


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