বিভিন্ন পাঠ্য আকারের সাথে পাঠ্যদর্শন


90

এক টেক্সটভিউতে কি আলাদা টেক্সট সাইজ সেট করা সম্ভব? আমি জানি যে আমি এটি ব্যবহার করে পাঠ্য শৈলী পরিবর্তন করতে পারি:

TextView textView = (TextView) findViewById(R.id.textView);
Spannable span = new SpannableString(textView.getText());
span.setSpan(arg0, 1, 10, arg3);
textView.setText(span)

আমি পরিসীমা শুরু জানি ... পাঠ্যের শেষে আমি আকার পরিবর্তন করতে চাই। কিন্তু আমি যেমন কি ব্যবহার করতে পারেন arg0এবং arg3?

উত্তর:


201

চেষ্টা করুন

span.setSpan(new RelativeSizeSpan(0.8f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

4
এটি সঠিকভাবে দেখায় তবে কার্যকর হয় না। আমার টেক্সটভিউতে পুরো পাঠ্যের সময় একই আকার থাকে।
woyaru

4
হুম সম্ভবত সেটস্প্যানের পরে আমার টেক্সটভিউতে স্প্যানটি প্রয়োগ করতে হবে (আপডেট)?
woyaru

4
আমার 3 টি মন্তব্যের জন্য দুঃখিত তবে আমি এই সমস্যাটি সমাধান করেছি। শুধু: textView.setText(span)
woyaru

আপনি কি জানেন যে আমি স্প্যানের জন্য রঙের সাথে কীভাবে আকারটি একত্রিত করতে পারি?
অয়নুত নেগ্রু

23

আমি উত্তর দিতে খুব দেরী জানি কিন্তু লোকেরা এখনও একই প্রশ্ন থাকতে পারে 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;
}

13

দিয়ে চেষ্টা AbsoluteSizeSpan

snackbarText.setSpan(new AbsoluteSizeSpan(fontsize, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

সম্পূর্ণ কোডটি হ'ল:

SpannableStringBuilder snackbarText = new SpannableStringBuilder();
snackbarText.append("Your text");
snackbarText.setSpan(new AbsoluteSizeSpan(fontsize, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Snackbar.make(getCurrentFocus(), snackbarText, Snackbar.LENGTH_LONG).setAction("Action", null).show();`
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.