Android 8.0 (API লেভেল 26) এবং উচ্চতর, আপনি TextView
এর বৈশিষ্ট্য এবং সীমানার উপর ভিত্তি করে এর লেআউটটি পূরণ করতে পাঠ্যের আকারকে প্রসারিত করতে বা স্বয়ংক্রিয়ভাবে সংকোচন করার জন্য একটি TextView
নির্দেশ দিতে পারেন। এই সেটিংটি গতিশীল সামগ্রী সহ বিভিন্ন স্ক্রিনে পাঠ্যের আকার অপ্টিমাইজ করা সহজ করে তোলে৷
Support Library 26.0 সম্পূর্ণরূপে Android ভার্সন 8.0 (API লেভেল 26) বা তার নিচে চলমান ডিভাইসগুলিতে অটোসাইজিং TextView
ফিচার সমর্থন করে। android.support.v4.widget
প্যাকেজে একটি পশ্চাদগামী-সামঞ্জস্যপূর্ণ ফ্যাশনে বৈশিষ্ট্যগুলি অ্যাক্সেস করার জন্য TextViewCompat
ক্লাস রয়েছে।
টেক্সটভিউ অটোসাইজ সেট আপ করুন
আপনি হয় ফ্রেমওয়ার্ক বা সাপোর্ট লাইব্রেরি ব্যবহার করতে পারেন TextView
প্রোগ্রাম্যাটিকভাবে বা XML-এ অটোসাইজিং সেট আপ করতে। XML বৈশিষ্ট্যগুলি সেট করতে, আপনি Android স্টুডিওতে বৈশিষ্ট্য উইন্ডোটিও ব্যবহার করতে পারেন।
তিনটি উপায়ে আপনি TextView
এর অটোসাইজিং সেট আপ করতে পারেন, যা অনুসরণ করা বিভাগগুলিতে বর্ণিত হয়েছে:
দ্রষ্টব্য : আপনি যদি একটি XML ফাইলে অটোসাইজিং সেট করেন, আমরা একটি TextView
এর layout_width
বা layout_height
বৈশিষ্ট্যের জন্য "wrap_content" মান ব্যবহার করার পরামর্শ দিই না। এটি করার ফলে অপ্রত্যাশিত ফলাফল হতে পারে।
ডিফল্ট
ডিফল্ট সেটিং অনুভূমিক এবং উল্লম্ব অক্ষগুলিতে অভিন্নভাবে TextView
স্কেলের অটোসাইজ করতে দেয়।
- ডিফল্ট সেটিং প্রোগ্রামগতভাবে সংজ্ঞায়িত করতে,
setAutoSizeTextTypeWithDefaults(int autoSizeTextType)
পদ্ধতিতে কল করুন। অটোসাইজিং বৈশিষ্ট্যটি বন্ধ করতেAUTO_SIZE_TEXT_TYPE_NONE
প্রদান করুন বা অনুভূমিক এবং উল্লম্ব অক্ষগুলিকে সমানভাবে স্কেল করতেAUTO_SIZE_TEXT_TYPE_UNIFORM
প্রদান করুন৷ - XML-এ ডিফল্ট সেটিং সংজ্ঞায়িত করতে,
android
নেমস্পেস ব্যবহার করুন এবংautoSizeTextType
অ্যাট্রিবিউটটি none বা ইউনিফর্মে সেট করুন।
দ্রষ্টব্য : ইউনিফর্ম স্কেলিং এর জন্য ডিফল্ট মাত্রা হল minTextSize = 12sp
, maxTextSize = 112sp
, এবং granularity = 1px.
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
সাপোর্ট লাইব্রেরি ব্যবহার করে ডিফল্ট সেটিং নির্ধারণ করুন
- সাপোর্ট লাইব্রেরির মাধ্যমে প্রোগ্রাম্যাটিকভাবে ডিফল্ট সেটিং নির্ধারণ করতে,
TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType)
পদ্ধতিতে কল করুন।TextView
উইজেটের একটি উদাহরণ প্রদান করুন এবং পাঠ্য প্রকারের একটি, যেমনTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE
বাTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM
। - সমর্থন লাইব্রেরির মাধ্যমে XML-এ ডিফল্ট সেটিং সংজ্ঞায়িত করতে,
app
নামস্থান ব্যবহার করুন এবংautoSizeTextType
বৈশিষ্ট্যটি none বা ইউনিফর্মে সেট করুন।
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" /> </LinearLayout>
গ্রানুলারিটি
আপনি সর্বনিম্ন এবং সর্বাধিক পাঠ্য আকারের একটি পরিসীমা এবং একটি মাত্রা নির্ধারণ করতে পারেন যা প্রতিটি ধাপের আকার নির্দিষ্ট করে। TextView
ন্যূনতম এবং সর্বাধিক আকারের বৈশিষ্ট্যগুলির মধ্যে একটি পরিসরে অভিন্নভাবে স্কেল করে৷ গ্রানুলারিটি অ্যাট্রিবিউটে স্টেপ সাইজ সেট হিসাবে প্রতিটি ইনক্রিমেন্ট ঘটে।
- টেক্সট আকারের একটি পরিসর এবং প্রোগ্রামগতভাবে একটি মাত্রা সংজ্ঞায়িত করতে,
setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
পদ্ধতিতে কল করুন। সর্বোচ্চ মান, সর্বনিম্ন মান, গ্রানুলারিটি মান এবং যেকোনTypedValue
ডাইমেনশন একক প্রদান করুন। - XML-এ পাঠ্য আকারের একটি পরিসীমা এবং একটি মাত্রা নির্ধারণ করতে,
android
নেমস্পেস ব্যবহার করুন এবং নিম্নলিখিত বৈশিষ্ট্যগুলি সেট করুন:-
autoSizeTextType
বৈশিষ্ট্যটি কোনটি নয় বা ইউনিফর্মে সেট করুন। কোনো মানই ডিফল্ট নয়, এবং ইউনিফর্ম অনুভূমিক এবং উল্লম্ব অক্ষগুলিতেTextView
সমানভাবে স্কেল করতে দেয়। -
TextView
-এর অটোসাইজ করার জন্য মাত্রা নির্ধারণ করতেautoSizeMinTextSize
,autoSizeMaxTextSize
এবংautoSizeStepGranularity
বৈশিষ্ট্যগুলি সেট করুন।
-
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />
সমর্থন লাইব্রেরি ব্যবহার করে গ্রানুলারিটি সংজ্ঞায়িত করুন
- সাপোর্ট লাইব্রেরির মাধ্যমে প্রোগ্রাম্যাটিকভাবে পাঠ্য আকারের একটি পরিসীমা এবং একটি মাত্রা নির্ধারণ করতে,
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
পদ্ধতিতে কল করুন। সর্বোচ্চ মান, সর্বনিম্ন মান, গ্রানুলারিটি মান এবং যেকোনTypedValue
ডাইমেনশন একক প্রদান করুন। - সমর্থন লাইব্রেরির মাধ্যমে XML-এ পাঠ্য আকারের একটি পরিসর এবং একটি মাত্রা নির্ধারণ করতে,
app
নামস্থান ব্যবহার করুন এবং লেআউট XML ফাইলেautoSizeText
,autoSizeMinTextSize
,autoSizeMaxTextSize
, এবংautoSizeStepGranularity
বৈশিষ্ট্যগুলি সেট করুন৷
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizeMinTextSize="12sp" app:autoSizeMaxTextSize="100sp" app:autoSizeStepGranularity="2sp" /> </LinearLayout>
প্রিসেট মাপ
প্রিসেট আকারগুলি আপনাকে পাঠ্য অটোসাইজ করার সময় TextView
বেছে নেওয়া মানগুলি নির্দিষ্ট করতে দেয়।
-
TextView
প্রোগ্রামেটিকভাবে অটোসাইজিং সেট আপ করতে প্রিসেট মাপ ব্যবহার করতে,setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)
পদ্ধতিতে কল করুন। আকারের একটি অ্যারে এবং আকারের জন্য যেকোনTypedValue
মাত্রা একক প্রদান করুন। - এক্সএমএলে
TextView
-এর অটোসাইজিং সেট আপ করতে প্রিসেট মাপ ব্যবহার করতে,android
নেমস্পেস ব্যবহার করুন এবং নিম্নলিখিত বৈশিষ্ট্যগুলি সেট করুন:-
autoSizeTextType
বৈশিষ্ট্যটি কোনটি নয় বা ইউনিফর্মে সেট করুন। কোনো মানই ডিফল্ট নয়, এবং ইউনিফর্ম অনুভূমিক এবং উল্লম্ব অক্ষগুলিতেTextView
সমানভাবে স্কেল করতে দেয়। - প্রিসেট মাপের একটি অ্যারেতে
autoSizePresetSizes
অ্যাট্রিবিউট সেট করুন। একটি সম্পদ হিসাবে অ্যারে অ্যাক্সেস করতে,res/values/arrays.xml
ফাইলে অ্যারেটি সংজ্ঞায়িত করুন।
-
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@array/autosize_text_sizes" />
সমর্থন লাইব্রেরি ব্যবহার করে প্রিসেট মাপ সেট আপ করুন
- সাপোর্ট লাইব্রেরির মাধ্যমে
TextView
প্রোগ্রামেটিকভাবে অটোসাইজিং সেট আপ করতে প্রিসেট মাপ ব্যবহার করতে,TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit)
পদ্ধতিতে কল করুন।TextView
ক্লাসের একটি উদাহরণ, আকারের একটি অ্যারে এবং আকারের জন্য যেকোনTypedValue
মাত্রা ইউনিট প্রদান করুন। - সমর্থন লাইব্রেরির মাধ্যমে XML-এ
TextView
এর অটোসাইজিং সেট আপ করতে প্রিসেট মাপ ব্যবহার করতে,app
নামস্থান ব্যবহার করুন এবং লেআউট XML ফাইলেautoSizeTextType
এবংautoSizePresetSizes
বৈশিষ্ট্যগুলি সেট করুন৷
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizePresetSizes="@array/autosize_text_sizes" /> </LinearLayout>
অতিরিক্ত সম্পদ
ডায়নামিক কন্টেন্টের সাথে কাজ করার সময় একটি TextView
অটোসাইজ করার বিষয়ে অতিরিক্ত তথ্যের জন্য, Android Jetpack: Autosizing TextView দেখুন।