ilalia2
پنج شنبه 30 فروردین 1397, 18:41 عصر
میخوام کاربر در برنامه بتونه اندازه متن رو با استفاده از دکمه یا سیک بار تغییر بده؛ چطور میتونم این رو انجام بدم؟
ilalia2
پنج شنبه 30 فروردین 1397, 19:27 عصر
میخوام کاربر در برنامه بتونه اندازه متن رو با استفاده از دکمه یا سیک بار تغییر بده؛ چطور میتونم این رو انجام بدم؟
البته نمیخوام توی یک اکتیویتی این کار رو انجام بدم، میخوام سایز متن کل اکتیویتی ها تغییر کنه (از تنظیمات ).
یعنی عدد رو از sharedpreferens بگیره (سایز فونت رو) و به اکتیویتی ها سایز مورد نظر برای فونت رو اعمال کنه.
farhad_shiri_ex
جمعه 31 فروردین 1397, 13:20 عصر
البته نمیخوام توی یک اکتیویتی این کار رو انجام بدم، میخوام سایز متن کل اکتیویتی ها تغییر کنه (از تنظیمات ).
یعنی عدد رو از sharedpreferens بگیره (سایز فونت رو) و به اکتیویتی ها سایز مورد نظر برای فونت رو اعمال کنه.
اگر از ویوهای اختصاصی استفاده کرده باشید که به راحتی میتونید یعنی منظورم این هست که اگر برای EditBox هاتون یک کلاس ویو بنویسید میتونید به کل خاصیت های کلاس EditText دسترسی داشته باشید و تنظیمات دلخواه خود را به آنها اعمال کنید و بعد البته باید از این کلاس در لایه XML فرم هاتون استفاده کنید یه چیزی شبیه به این ....
public class PersianEditText extends android.support.v7.widget.AppCompatEditText {
public PersianEditText(Context context) {
super(context);
if (!isInEditMode()) {
SetAttribute();
setTypeface(FontHelper.getInstance(context).getPer sianTextTypeface());
}
}
public PersianEditText(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
SetAttribute();
setTypeface(FontHelper.getInstance(context).getPer sianTextTypeface());
}
}
public PersianEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
if (!isInEditMode()) {
SetAttribute();
setTypeface(FontHelper.getInstance(context).getPer sianTextTypeface());
}
}
@Override
public void setText(CharSequence text, BufferType type) {
if (text != null)
text = FormatHelper.toPersianNumber(text.toString());
super.setText(text, type);
}
private void SetAttribute() {
//setTextSize(15);
setTextSize(TypedValue.COMPLEX_UNIT_SP, StyleControl.EDIT_TEXT_SIZE_14);
setHintTextColor(getContext().getResources().getCo lor(R.color.GRAY_LIGHT_HINT_EDITTEXT)); // white
setTextColor(getContext().getResources().getColor( R.color.GRAY_LIGHT_HINT_EDITTEXT));// white
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
setTextDirection(TEXT_DIRECTION_RTL);
}
setSelectAllOnFocus(true);
}
البته خودتون هم میتونید به سادگی خصوصیت های دلخواه خودتون رو به این کلاس اضافه کنید و از اونها استفاده کنید به راحتی با دستورات زیر...
/* Define into attrs.xml */
<declare-styleable name="myCustomEditText">
<attr name="edtv_border_width" format="dimension"/>
<attr name="edtv_border_color" format="color"/>
</declare-styleable>
/* write this code in your custom EditText view Constructor */
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.myCustomEditText, defStyle, 0);
mBorderWidth = a.getDimensionPixelSize(R.styleable.myCustomEditTe xt_edtv_border_width, DEFAULT_BORDER_WIDTH);
mBorderColor = a.getColor(R.styleable.myCustomEditText_edtv_borde r_color, DEFAULT_BORDER_COLOR);
و اگر هم که نخواهید از ویوهای اختصاصی استفاده کنید که خوب کارتون یکم سخت تر میشه چون باید از تکنیک های بازتاب در زمان اجرا استفاده کنید تا به خصوصیت اشیاء دسترسی داشته باشید که خوب اونهم چالش های خاص خودش را داره.!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.