با سلام خدمت شما دوستان سایت اسمارت دولوپرز . در خدمت شما هستیم با آموزش محاسبه سایز String ها به dp در اندروید.
چرا نیاز به محاسبه سایز String ها به dp داریم ؟
فرض کنید شما میخواهید برنامه ای بنویسید که یک متنی رو در داخل یک TextView نمایش بده و این TextView هم اندازه ثابتی داره . به علاوه این متن ممکنه طول متفاوتی داشته باشه . و همینطور، قصد دارید که وقتی سایز نوشته بزرگ تر از سایز TextView شد، قسمتی از متن رو حذف کرده و فقط ابتدا و انتهای متن نمایش داده بشه . مثلا فرض کنید همچین نوشته ای داریم :
” آموزش تبدیل سایز String ها به dp در اندروید “
و سایز TextView ما فقط 160dp است . و میخواهیم که وقتی نوشته ما در این TextView لود شد به این صورت نمایش داده بشه :
” آموزش تبدیل … اندروید ”
به همین منظور نیاز داریم ابتدا سایز String ها رو به dp تبدیل کنیم و بعد با سایز TextView مقایسه کنیم که اگر از سایز TextView بیشتر بود کار تبدیل متن بلند به کوتاه رو انجام بدیم .
این مثال یک مورد از نیازمون به تبدیل سایز نوشته ها به dp در اندروید بود . و ممکنه برای خیلی از موارد دیگه به این مورد نیاز پیدا کنیم .
چگونه در اندروید اندازه سایز یک تکست را به dp به دست بیاوریم ؟
-
محاسبه سایز Text با استفاده از TextView :
فرض کنید ما یک TextView داریم و یک متن درون آن نوشته ایم . برای به دست آوردن سایز String موجود در این TextView به صورت زیر عمل میکنیم :
1 2 3 4 5 6 7 |
TextView textView; String text=textView.getText().toString(); Rect bound=new Rect(); Paint textPaint=textView.getPaint(); textPaint.getTextBounds(text,0,text.length,bound); int textHeightToPx=bound.height; int textWidthToPx=bound.width; |
در اینجا textWidthToPx اندازه طول متن موجود در TextView به pixel هستش .
-
محاسبه طول یک String :
در این حالت ما فقط یک نوشته یا یک String در اختیار داریم و برای به دست آوردن طول String به صورت زیر عمل میکنیم :
1 2 3 |
String text; Paint paint=new Paint(); int widthToPx=(int)paint.mesureText(text); |
در اینجا هم widthToPx طول String ما به px هستش .
برای تبدیل px به dp هم میتونید از آموزش تبدیل سایز در اندروید استفاده کنید .
امیدوارم از آموزش تبدیل sp به dp در اندروید نهایت استفاده رو برده باشید . اگه سوال و پیشنهادی دارید در قسمت نظرات برای ما بنویسید .
موفق و پیروز باشید .