আমি উত্তর দিতে খুব দেরী জানি কিন্তু লোকেরা এখনও একই প্রশ্ন থাকতে পারে ven তবে আমি এ নিয়ে অনেক লড়াই করেছি। ধরুন আপনার স্ট্রিংস.এমএমএল ফাইলের ভিতরে এই দুটি স্ট্রিং রয়েছে
<string name="my_text">You will need a to complete this assembly</string>
<string name="text_sub1">screwdriver, hammer, and measuring tape</string>
আপনার এখন তাদের বিভিন্ন স্টাইল.এক্সএমএল এর ভিতরে বিভিন্ন পাঠ্য আকারের সাথে দুটি স্টাইল নির্ধারণ করতে হবে
<style name="style0">
<item name="android:textSize">19sp</item>
<item name="android:textColor">@color/standout_text</item>
<item name="android:textStyle">bold</item>
</style>
<style name="style1">
<item name="android:textSize">23sp</item>
<item name="android:textColor">@color/standout_light_text</item>
<item name="android:textStyle">italic</item>
</style>
এখন আপনার জাভা ফাইল থেকে আপনাকে এই দুটি স্টাইল এবং স্ট্রিংগুলি একক পাঠ্য ভিউতে লোড করতে স্প্যানিয়েবল ব্যবহার করতে হবে
SpannableString formattedSpan = formatStyles(getString(R.string.my_text), getString(R.string.text_sub0), R.style.style0, getString(R.string.main_text_sub1), R.style.style1);
textView.setText(formattedSpan, TextView.BufferType.SPANNABLE);
নীচে ফর্ম্যাট স্টাইলস পদ্ধতি যা শৈলী প্রয়োগ করার পরে ফর্ম্যাট স্ট্রিংটি ফিরিয়ে দেবে
private SpannableString formatStyles(String value, String sub0, int style0, String sub1, int style1)
{
String tag0 = "{0}";
int startLocation0 = value.indexOf(tag0);
value = value.replace(tag0, sub0);
String tag1 = "{1}";
int startLocation1 = value.indexOf(tag1);
if (sub1 != null && !sub1.equals(""))
{
value = value.replace(tag1, sub1);
}
SpannableString styledText = new SpannableString(value);
styledText.setSpan(new TextAppearanceSpan(getActivity(), style0), startLocation0, startLocation0 + sub0.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
if (sub1 != null && !sub1.equals(""))
{
styledText.setSpan(new TextAppearanceSpan(getActivity(), style1), startLocation1, startLocation1 + sub1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return styledText;
}