بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تغییر سایز متن با استفاده از seek bar(حل شد)
سلام خدمت دوستان عزیز...
اقا من کلی 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 تغییر بدید :)
پاسخ به سوال
یگانه
10 سال پیش
0
0
من میخام این کد نو یک Dialog باز بشه ولی خطا میده چجوری اینکارو کنم دمت گرم معطلم
پاسخ به سوال
یگانه
10 سال پیش
0
0
من میخام این کد نو یک Dialog باز بشه ولی خطا میده چجوری اینکارو کنم دمت گرم
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .