رفتن به مطلب
  • 0

تنظیم اندازه متن EditText


امیرحسین قاسمی

سوال

سلام،

برای اینکه سایز متن داخل ادیت تکست با ارتفاع ادیت تکست هماهنگ بشه به طوری که بیرون نزنه چه راه استانداردی هست؟

EditText1.TextSize=40

الان ممکنه توی تبلت ها متن داخل ادیت تکست فیت باشه اما توی گوشی ها از بالا و پایین بیرون بزنه!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

9 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

۵ ساعت قبل، امیرحسین قاسمی گفته است:

سلام،

برای اینکه سایز متن داخل ادیت تکست با ارتفاع ادیت تکست هماهنگ بشه به طوری که بیرون نزنه چه راه استانداردی هست؟

EditText1.TextSize=40

الان ممکنه توی تبلت ها متن داخل ادیت تکست فیت باشه اما توی گوشی ها از بالا و پایین بیرون بزنه!

برای اندازه ویوها من dip میدم و تمامی دستگاه ها درست نمایش میده اگر از % استفاده میکنید ب مشکل میخورید

ول برای چیزی ک شما میخواین فکنم StringUtil متد مد نظر داره MeasureMultilineTextHeight 

Dim Label1 As Label
Label1.Initialize("")
Label1.Text = "this is a long sentence, and we need to " _
  & "know the height required in order To show it completely."
Label1.TextSize = 20
Activity.AddView(Label1, 10dip, 10dip, 200dip, 30dip)
Dim su As StringUtils
Label1.Height = su.MeasureMultilineTextHeight(Label1, Label1.Text)

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۵۷ دقیقه قبل، DexterFstone گفته است:

برای اندازه ویوها من dip میدم و تمامی دستگاه ها درست نمایش میده اگر از % استفاده میکنید ب مشکل میخورید

ول برای چیزی ک شما میخواین فکنم StringUtil متد مد نظر داره MeasureMultilineTextHeight 

Dim Label1 As Label
Label1.Initialize("")
Label1.Text = "this is a long sentence, and we need to " _
  & "know the height required in order To show it completely."
Label1.TextSize = 20
Activity.AddView(Label1, 10dip, 10dip, 200dip, 30dip)
Dim su As StringUtils
Label1.Height = su.MeasureMultilineTextHeight(Label1, Label1.Text)

موفق باشید

ممنونم از راهنماییتون،

اما این کد شما برای لیبل هست نه ادیت تکست!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۲ ساعت قبل، امیرحسین قاسمی گفته است:

ممنونم از راهنماییتون،

اما این کد شما برای لیبل هست نه ادیت تکست!!

شما بجای لیبل ادیت تکست بنویسید باید جواب بده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۳۴ دقیقه قبل، DexterFstone گفته است:

شما بجای لیبل ادیت تکست بنویسید باید جواب بده

همه اینارو قبلا تست کردم این روش همیشه جواب نمیده و مشکل داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۹ ساعت قبل، امیرحسین قاسمی گفته است:

سلام،

برای اینکه سایز متن داخل ادیت تکست با ارتفاع ادیت تکست هماهنگ بشه به طوری که بیرون نزنه چه راه استانداردی هست؟

EditText1.TextSize=40

الان ممکنه توی تبلت ها متن داخل ادیت تکست فیت باشه اما توی گوشی ها از بالا و پایین بیرون بزنه!

سلام منظورتون اینه موقه تایپ و اینتر زدن ارتفاع زیاد بشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۳۵ دقیقه قبل، محمدرضا شاهپیری گفته است:

سلام منظورتون اینه موقه تایپ و اینتر زدن ارتفاع زیاد بشه؟

لطفا تصویر زیر رو ببینید:

image.png.7df368d08c6e0fdedbf267b168b79ffb.png

اندازه متن از اندازه EditText بیشتره و این باعث شده که نصف متن داخل EditText نمایش داده نشه!

الان توی دستگاهی با صفحه نمایش بزرگتر (مثلا تبلت ها) ممکنه مشکلی وجود نداشته باشه چون به مراتب EditText هم بزرگتر میشه و متن کامل نمایش داده میشه اما توی گوشی ها و صفحه نمایش های کوچیک چنین اتفاقی رخ میده.

برای لیبل راه حل وجود داره که توی همه دستگاه ها متن داخلش فیت بشه اما برای ادیت تکست چیزی پیدا نکردم!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۱۱ ساعت قبل، امیرحسین قاسمی گفته است:

لطفا تصویر زیر رو ببینید:

image.png.7df368d08c6e0fdedbf267b168b79ffb.png

اندازه متن از اندازه EditText بیشتره و این باعث شده که نصف متن داخل EditText نمایش داده نشه!

الان توی دستگاهی با صفحه نمایش بزرگتر (مثلا تبلت ها) ممکنه مشکلی وجود نداشته باشه چون به مراتب EditText هم بزرگتر میشه و متن کامل نمایش داده میشه اما توی گوشی ها و صفحه نمایش های کوچیک چنین اتفاقی رخ میده.

برای لیبل راه حل وجود داره که توی همه دستگاه ها متن داخلش فیت بشه اما برای ادیت تکست چیزی پیدا نکردم!

روش زیر رو استفاده کنید. تا حد خیلی زیادی مشکل رو حل میکنه.

اول فایل زیپ رو دانلود و تو مسیر پروژه اکسترکت کنید

و توی Region  Project Attributes کد زیر رو اضافه کنید

#AdditionalRes: ..\res

حالا کدهای زیر رو اضافه کنید به اکتیویتی


#If java
import android.util.TypedValue;
import android.widget.TextView;
import java.lang.reflect.Field;
private int getResId(String variableName) {
    Field field;
    int resId = 0;
    try {
        field = R.dimen.class.getField(variableName);
        try {
            field.setAccessible(true);
            resId = field.getInt(null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return resId;
}
public void setTextSize(TextView txt , int textSize){
    try {
        int resourceID =getResId("_"+textSize+"ssp");
        txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(resourceID));
    }catch (Exception e) {
        e.printStackTrace();
    }
}
public float getDpSize(int textSize) {
	try {
	    int resourceID = getResId("_" + textSize + "sdp");
	    return getResources().getDimension(resourceID);
	} catch (Exception e) {
	    e.printStackTrace();
	}
	return 0;
}
#End If

به شکل زیر استفاده کنید

Dim jo As JavaObject:jo.InitializeContext
	jo.RunMethod("setTextSize",Array(EditText1,15))
	Dim size100Dp As Int=jo.RunMethod("getDpSize",Array(100))
	Button2.Width=size100Dp
	Button2.Height=size100Dp

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۱۲ ساعت قبل، محمدرضا شاهپیری گفته است:

روش زیر رو استفاده کنید. تا حد خیلی زیادی مشکل رو حل میکنه.

اول فایل زیپ رو دانلود و تو مسیر پروژه اکسترکت کنید

و توی Region  Project Attributes کد زیر رو اضافه کنید

#AdditionalRes: ..\res

حالا کدهای زیر رو اضافه کنید به اکتیویتی


#If java
import android.util.TypedValue;
import android.widget.TextView;
import java.lang.reflect.Field;
private int getResId(String variableName) {
    Field field;
    int resId = 0;
    try {
        field = R.dimen.class.getField(variableName);
        try {
            field.setAccessible(true);
            resId = field.getInt(null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return resId;
}
public void setTextSize(TextView txt , int textSize){
    try {
        int resourceID =getResId("_"+textSize+"ssp");
        txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(resourceID));
    }catch (Exception e) {
        e.printStackTrace();
    }
}
public float getDpSize(int textSize) {
	try {
	    int resourceID = getResId("_" + textSize + "sdp");
	    return getResources().getDimension(resourceID);
	} catch (Exception e) {
	    e.printStackTrace();
	}
	return 0;
}
#End If

به شکل زیر استفاده کنید

Dim jo As JavaObject:jo.InitializeContext
	jo.RunMethod("setTextSize",Array(EditText1,15))
	Dim size100Dp As Int=jo.RunMethod("getDpSize",Array(100))
	Button2.Width=size100Dp
	Button2.Height=size100Dp

 

ببخشید کدوم فایل zip؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۲/۱۲/۲۷ در ۲۰:۴۰، امیرحسین قاسمی گفته است:

ببخشید کدوم فایل zip؟

 

res.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...