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


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.