مقدار دهی typeface در لیست ویو Preference ؟ (حل شد)
سلام...
من بر اساس آموزش ها یک صفحه Preference ساختم و همچنین با استفاده از Style تغییراتی در ظاهرش ایجاد کردم.
اما حالا میخوام با استفاده از کد، فونت رو تغییر بدم ... ولی نمیدونم چطور میشه مقدار TypeFace عناصر لیست ویو این Preference رو تغییر داد!؟
ممنون میشم اگر دوستان راهنمایی کنند.
شما باید یه کلاس به نام MyTextView بسازید و این کدهارو داخلش بنویسید
package name_package_shoma;
import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.widget.TextView; 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 b = Typeface.createFromAsset(getContext().getAssets(), "b.ttf"); setTypeface(b); } } }
به جای b میتونید نام فونت خودتون رو بنویسید
و در فایل xml لایه ای که میخوای کنترل، فونت موردنظر رو داشته باشه مثلأ TextView
به جای خطی که معرف TextView هستش یعنی اولین خط
<TextView
این کد رو جایگزین کنید
<name_package_shoma.MyTextView
به طور مثال به این صورت
<name_package_shoma.MyTextView
android:id="@+id/txtone" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="TextView" android:textColor="#ffffff" />
به جای name_package_shoma نام پکیج خودتون رو بنویسید!
این بهترین راه حل هستش، هرجا مشکل داشتید همین جا بفرمایید!
موفق باشید!
ممنونم از میثم عزیز برای کمکش...
با استفاده از اطلاعاتی که داد یه سرچ دقیق تر و تکمیلی تر انجام دادم و به این پیج رسیدم: لینک
همینطور که در لینک و ارسال میثم عزیز دیده میشه، یک کلاس میسازیم و اون شی مد نظرمون رو اکستند میکنید، سپس تمام کانستراکتور هاش رو وارد میکنیم. مثلا برای مثال من میشه کلاسی که از CheckBoxPreference اکستند شده.
بعد onBindView رو باز نویسی میکنیم و میتونیم به سادگی به تکست ویو، چک باکس یا هر چیز دیگه ای دسترسی داشته باشیم!
بعد از این فایل xml رو ادیت میکنیم و به جای اسم فیلد به روشی که میثم عزیز توضیح داد تغییر ایجاد می کنیم.
public class MyCheckBoxPreference extends CheckBoxPreference {
public MyCheckBoxPreference(Context context) {
super(context);
}
public MyCheckBoxPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
TextView titleView = (TextView) view.findViewById(android.R.id.title);
titleView.setTypeface(G.trafficfont);
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .