অ্যান্ড্রয়েডে সাবস্ক্রিপ্ট এবং সুপারস্ক্রিপ্ট একটি স্ট্রিং


104

সাবস্ক্রিপ্ট বা সুপারস্ক্রিপ্ট দিয়ে আপনি কীভাবে একটি স্ট্রিং মুদ্রণ করতে পারেন? আপনি কি বাহ্যিক গ্রন্থাগার ছাড়া এটি করতে পারেন? আমি এটিকে TextViewঅ্যান্ড্রয়েডে প্রদর্শন করতে চাই ।


[এই] [1] টিপটি তালিকার দর্শন এবং এর পাঠ্যদর্শনটিতে ব্যবহার করুন। [1]: stackoverflow.com/a/22105902/1350021
Omid Omidi

উত্তর:


159
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup>2</sup>"));

অথবা

অ্যান্ড্রয়েডে সাধারণ কাজ এবং তাদের কীভাবে করবেন


3
এটি প্রযুক্তিগতভাবে এইচটিএমএলকে সমর্থন করছে না, এটি একটি স্প্যানড তৈরি করছে, যা টেক্সটভিউ সমর্থন করে। মূলত শৈলীর তথ্য সহ চার সেক্যেন্সেস।
ডাণ্ড্রে অ্যালিসন

1
এটি আমার পক্ষে কাজ করে না ... তবে এর কারণ হিসাবে আমি এটিকে আমার স্ট্রিংস.এমএমএল ফাইলের মধ্যে রেখেছি। এটি আমার জন্য এটি সাবস্ক্রিপশন করে তবে এটি এটিকে ক্লিপ করে এবং আমি যত প্যাডিং রাখি তা সর্বদা ক্লিপড হয়ে যায়।
জেপিএম

এই এইচটিএমএলকে পার্সিং করা অত্যন্ত ব্যয়বহুল নয়?
এ। স্টেইনবার্গেন

10
উত্তরের লিঙ্কটি আর প্রাসঙ্গিক বলে মনে হচ্ছে না।
পাং

3
এর জন্য ধন্যবাদ তবে একটি স্প্যানিয়েবল স্ট্রিংবিল্ডার ব্যবহার করে নীচের উত্তরগুলি আরও ভাল।
জ্যাচ স্পার্সকে

105

উদাহরণ:

equation = (TextView) findViewById(R.id.textView1);
SpannableStringBuilder cs = new SpannableStringBuilder("X3 + X2");
cs.setSpan(new SuperscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new RelativeSizeSpan(0.75f), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new RelativeSizeSpan(0.75f), 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
equation.setText(cs);

1
এটি আসলে সঠিক দেখাচ্ছে, ভাগ করে নেওয়ার জন্য ধন্যবাদ! এইচটিএমএল.ফর্মএইচটিএমএল () পদ্ধতিটি সুবিধাজনক তবে সুপারসক্রিপ্টটি ছোট নয়।
ড্যানিয়েল শুলার

এই উপায় ভাল! এইচটিএমএল.ফর্মএইচটিএমএল পদ্ধতি সুপারসক্রিপ্টের পাঠ্য কেটে ফেলা হতে পারে।
জাচ স্পার্সকে

আমি যখন এই পদ্ধতিটি ব্যবহার করি তখন 100 মিটার বর্গক্ষেত্রটি বলার মতো equation.setText(blah+cs);কাজ করে না। যদিও আলাদাভাবে কাজ করে। কিভাবে এই কাজ পেতে?
কেউই

চেয়ে অনেক ভাল Html.fromHtml () পদ্ধতি
scienticious

দয়া করে ব্যাখ্যা যুক্ত করুন
আরিটিতে সলোমন আরেটিয়

48

জিজ্ঞাসা করা সমস্ত লোকের কাছে, সুপার বা সাবস্ক্রিপ্ট তৈরির পাশাপাশি আপনি যদি এটি আরও ছোট করতে চান তবে আপনাকে কেবল ট্যাগ যুক্ত করতে হবে। গো EX:

"X <sup><small> 2 </small></sup>"

14

কোডটিতে কেবল এই "\ u00B2" রাখুন:

textView.setText("X\u00B2");


হাই, আপনার উত্তরটি খুব সহায়ক ছিল। তবে সাবস্ক্রিপ্টের জন্য কোন কোড ব্যবহার করা যেতে পারে? এছাড়াও এই কোডগুলিকে কী বলা হয় যদি আমি তাদের গুগল করি তবে সেগুলি কি ইউনিকোড?
Kolaaa

হাই, হ্যাঁ ইউনিকোড, এখানে সমস্ত ইউনিকোড ইউনিকোড.org/ charts
জেরার্ডো সালাজার সানচেজ

ধন্যবাদ। খুব সহজ.
ইজাক

11

আপনি যদি স্ট্রিং.এক্সএমএল ফাইল থেকে সুপারস্ক্রিপ্ট সেট করতে চান তবে এটি ব্যবহার করে দেখুন:

স্ট্রিং রিসোর্স:

<string name="test_string">X&lt;sup&gt;3&lt;/sup&gt;</string>

আপনি যদি সুপারস্ক্রিপ্টটি ছোট হতে চান:

<string name="test_string">X&lt;sup&gt;&lt;small&gt;3&lt;/small&gt;&lt;/sup&gt;</string>

কোড:

textView.setText(Html.fromHtml("Anything you want to put here"+getString(R.string.test_string)));

11

এটি কিছুটা দেরিতে তবে ঠিকঠাক কাজ করে, সুপারস্প্রিপ্টকে বিশেষ চরিত্র হিসাবে ব্যবহার করুন, আমি এখানে স্পেসিয়াল চর ব্যবহার করেছি।

<string name="str">H₂</string>

10
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup><small>2</small></sup>")); 

(বা) স্ট্রিং রিসোর্স ফাইল থেকে:

<string name="test_string">
  <![CDATA[ X<sup><small>2</small></sup> ]]>
</string>

আমি প্রবাহের উপরে স্রোতে নতুন, সেই সময়ে কীভাবে ব্যবহার করতে হয় তা জানেন না।
mvnkalyani

8

স্বীকৃত উত্তরটি এখন অবচয় করা হয়েছে। সুতরাং দয়া করে কোড এই টুকরা মাধ্যমে যান। আমি এটি কোনও ওয়েবসাইট থেকে পেয়েছি। আমি নামটি ভুলে গেছি তবে যাইহোক এই ভাল কোডিং ওয়ার্কিং কোডের জন্য ধন্যবাদ।

     SpannableString styledString
            = new SpannableString("Large\n\n"     // index 0 - 5
            + "Bold\n\n"          // index 7 - 11
            + "Underlined\n\n"    // index 13 - 23
            + "Italic\n\n"        // index 25 - 31
            + "Strikethrough\n\n" // index 33 - 46
            + "Colored\n\n"       // index 48 - 55
            + "Highlighted\n\n"   // index 57 - 68
            + "K Superscript\n\n" // "Superscript" index 72 - 83 
            + "K Subscript\n\n"   // "Subscript" index 87 - 96
            + "Url\n\n"           //  index 98 - 101
            + "Clickable\n\n");   // index 103 - 112

    // make the text twice as large
    styledString.setSpan(new RelativeSizeSpan(2f), 0, 5, 0);

    // make text bold
    styledString.setSpan(new StyleSpan(Typeface.BOLD), 7, 11, 0);

    // underline text
    styledString.setSpan(new UnderlineSpan(), 13, 23, 0);

    // make text italic
    styledString.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);

    styledString.setSpan(new StrikethroughSpan(), 33, 46, 0);

    // change text color
    styledString.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0);

    // highlight text
    styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0);

    // superscript
    styledString.setSpan(new SuperscriptSpan(), 72, 83, 0);
    // make the superscript text smaller
    styledString.setSpan(new RelativeSizeSpan(0.5f), 72, 83, 0);

    // subscript
    styledString.setSpan(new SubscriptSpan(), 87, 96, 0);
    // make the subscript text smaller
    styledString.setSpan(new RelativeSizeSpan(0.5f), 87, 96, 0);

    // url
    styledString.setSpan(new URLSpan("http://www.google.com"), 98, 101, 0);

    // clickable text
    ClickableSpan clickableSpan = new ClickableSpan() {

        @Override
        public void onClick(View widget) {
            // We display a Toast. You could do anything you want here.
            Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();

        }
    };

    styledString.setSpan(clickableSpan, 103, 112, 0);


    // Give the styled string to a TextView
    spantext = (TextView) findViewById(R.id.spantext);


    // this step is mandated for the url and clickable styles.
    spantext.setMovementMethod(LinkMovementMethod.getInstance());

    // make it neat
    spantext.setGravity(Gravity.CENTER);
    spantext.setBackgroundColor(Color.WHITE);

    spantext.setText(styledString);

দ্রষ্টব্য: সর্বদা android:textAllCaps="false"আপনার স্প্যান্টেক্সট রাখুন।


4

এইচটিএমএল.ফ্রমএইচটিএমএল (স্ট্রিং) এপিআই 24 হিসাবে অবহেলা করা হয়েছিল They তারা পরিবর্তে এটি ব্যবহার করার কথা বলে, যা পরামিতি হিসাবে পতাকা সমর্থন করে। সুতরাং গৃহীত উত্তর থেকে দূরে যেতে:

TextView textView = ((TextView)findViewById(R.id.text));
textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));

এবং আপনি যদি এমন কোড চান যা প্রি -৪৪ এপিআইকেও বিবেচনা করে:

TextView textView = ((TextView)findViewById(R.id.text));
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
  textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));
} else {
    textView.setText(Html.fromHtml("X<sup>2</sup>"));    
}

এই উত্তরটি থেকে নেওয়া হয়েছিল: https://stackoverflow.com/a/37905107/4998704

পতাকা এবং অন্যান্য ডকুমেন্টেশন এখানে পাওয়া যাবে: https://developer.android.com/references/android/text/Html.html


3

স্ট্রিং রিসোর্স ফাইলে কীভাবে ব্যবহার করতে হয় তা : বা সুপারস্ক্রিপ্ট এবং সাবস্ক্রিপ্টের জন্য যথাক্রমে আমি এই নিবন্ধটি পেয়েছি ।Spannable<sup><sub>


6
উত্তরের লিঙ্কটি আর প্রাসঙ্গিক বলে মনে হচ্ছে না।
পাং

0

ইন strings.xmlফাইল, আপনি শুধু এইচটিএমএল ব্যবহার করতে পারেন <sup>3</sup>ট্যাগ। আমার জন্য নিখুঁতভাবে কাজ করুন

EXAMPLE টি

<string name="turnoverRate">Turnover rate m<sup>3</sup>/m<sup>2</sup>/hour:</string>

0

তাদের ইউনিকোড অক্ষর বলা হয় এবং অ্যান্ড্রয়েড TextViewতাদের সমর্থন করে। আপনি যে উইকিপিডিয়া থেকে চান তা সুপার / সাব-স্ক্রিপ্ট অনুলিপি করুন: https ://en.wik વિક


0

অ্যান্ড্রয়েড স্ট্রিং রিসোর্স সুপারস্প্রিপ্ট এবং চিঠির জন্য সাবস্ক্রিপ্ট

আপনি চাইলে যে কোনও অক্ষর এখানে উপস্থাপন করা থাকলে আপনাকে সত্যই এইচটিএমএল ডকুমেন্ট ব্যবহার করতে হবে না

"একটি" অনুলিপি করুন এবং এটি "ᵃ" পেস্ট করুন

আপনি আপনার অ্যান্ড্রয়েড স্ট্রিং রিসোর্সে সরাসরি এই সুপারস্প্রিপ্ট এবং সাবস্ক্রিপ্টগুলি অনুলিপি করে আটক করতে পারেন।

উদাহরণ:

    <string name="word_with_superscript" translatable="false">Trademark ᵀᴹ</string>

ফলাফল: ট্রেডমার্ক ᵀᴹ

সুপারস্ক্রিপ্ট এবং সাবস্ক্রিপ্ট চিঠি

সুপারস্ক্রিপ্ট মূলধন ᴬ ᴮ

সুপারস্ক্রিপ্ট বিয়োগচিহ্ন ule

সাবস্ক্রিপ্ট বিয়োগকারক ule


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.