सदस्यता और सुपरस्क्रिप्ट Android में एक स्ट्रिंग


104

आप सबस्क्रिप्ट या सुपरस्क्रिप्ट के साथ एक स्ट्रिंग कैसे प्रिंट कर सकते हैं? क्या आप बाहरी पुस्तकालय के बिना ऐसा कर सकते हैं? मैं चाहता हूं कि यह TextViewएंड्रॉइड में प्रदर्शित हो ।


लिस्टव्यू और इसके टेक्स्टव्यू में [इस] [१] ट्रिक का उपयोग करें। [1]: stackoverflow.com/a/22105902/1350021
ओमिड ओमिडि

जवाबों:


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

या

एंड्रॉइड में आम कार्य और कैसे करें


3
यह तकनीकी रूप से HTML का समर्थन नहीं कर रहा है, जो कि एक Spanned बना रहा है, जो TextViews का समर्थन करता है। शैली की जानकारी के साथ अनिवार्य रूप से शुल्क।
डैंड्रे एलिसन

1
यह मेरे लिए काम नहीं करता है ... लेकिन शायद इसका कारण मैंने इसे अपने स्ट्रिंग्स.xml फ़ाइल के अंदर सेट किया है। यह मेरे लिए इसे सब्सक्राइब करता है, लेकिन यह इसे क्लिप करता है और इससे कोई फर्क नहीं पड़ता कि मैंने कितना पैडिंग रखा है।
जेपीएम

क्या यह HTML बहुत महंगा नहीं है?
ए। स्टीनबर्गेन

10
उत्तर में लिंक अब प्रासंगिक नहीं लगता है।
पैंग

3
इसके लिए धन्यवाद, लेकिन SpannableStringBuilder का उपयोग करने के लिए नीचे का उत्तर बहुत बेहतर है।
Zach Sperske

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
यह वास्तव में सही लगता है, साझा करने के लिए धन्यवाद! Html.fromHTML () विधि सुविधाजनक है, लेकिन सुपरस्क्रिप्ट छोटा नहीं है।
डैनियल स्कॉलर

यह बेहतर तरीका है! Html.fromHtml विधि से सुपरस्क्रिप्ट टेक्स्ट काटा जा सकता है।
Zach Sperske

जब मैं इस पद्धति का उपयोग करता हूं तो यह कहना होगा कि 100 मीटर वर्ग equation.setText(blah+cs);काम नहीं करता है। हालांकि अलग से काम करता है। उस काम को कैसे प्राप्त करें?
कोई नहीं

सुदूर से बेहतर Html.fromHtml () विधि
scienticious

कृपया स्पष्टीकरण जोड़ें
आर्येते सोलोमन आर्येते जूल 27'19

48

सभी लोगों से पूछते हुए, यदि आप इसे सुपर या सबस्क्रिप्ट बनाने के अलावा छोटा करना चाहते हैं, तो आपको केवल टैग जोड़ने की आवश्यकता है। पूर्व:

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

14

कोड में इस तरह से "\ u00B2" डालें:

textView.setText("X\u00B2");


नमस्ते, आपका उत्तर बहुत मददगार था। हालाँकि, किस कोड का उपयोग सबस्क्रिप्ट के लिए किया जा सकता है? इसके अलावा इन कोड्स को क्या कहा जाता है यदि मैं उन्हें Google में क्या करूं, तो क्या वे यूनिकोड हैं?
कोलाया

हाय, हाँ यूनिकोड, यहाँ एक पीडीएफ है तिनका सभी unicodes unicode.org/charts/PDF/U2070.pdf
गेरार्डो सलाज़ार सांचेज़

धन्यवाद। बहुत आसान।
इजाक

11

यदि आप string.xml फ़ाइल से सुपरस्क्रिप्ट को सेट करना चाहते हैं, तो यह कोशिश करें:

स्ट्रिंग संसाधन:

<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>

मैं प्रवाह पर ढेर करने के लिए नया हूं, उस समय का उपयोग करने का तरीका नहीं जानता।
मावकल्याणी

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

HTML.fromHTML (स्ट्रिंग) को एपीआई 24 के रूप में चित्रित किया गया था। वे इसके बजाय एक का उपयोग करने के लिए कहते हैं, जो एक पैरामीटर के रूप में झंडे का समर्थन करता है। तो स्वीकार किए जाते हैं जवाब से दूर जाने के लिए:

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

और यदि आप ऐसा कोड चाहते हैं जो पूर्व 24 एपीआई के रूप में अच्छी तरह से समझता है:

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/reference/android/text/Html.html


3

मुझे यह लेख कैसे Spannableया एक स्ट्रिंग संसाधन फ़ाइल में उपयोग करने के लिए मिला : <sup>या <sub>क्रमशः सुपरस्क्रिप्ट और सबस्क्रिप्ट के लिए।


6
उत्तर में लिंक अब प्रासंगिक नहीं लगता है।
पैंग

0

में strings.xmlफ़ाइलों, तो आप सिर्फ HTML का उपयोग कर सकते हैं <sup>3</sup>टैग। मेरे लिए पूरी तरह से काम करें

उदाहरण

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


0

एंड्रॉइड स्ट्रिंग रिसोर्स सुपरस्क्रिप्ट और अक्षरों के लिए सबस्क्रिप्ट

यदि आपके द्वारा चाहा गया कोई भी पत्र यहां दर्शाया गया है, तो आपको वास्तव में html दस्तावेज़ का उपयोग करने की आवश्यकता नहीं है

"A" के लिए यह "" "कॉपी और पेस्ट करें

आप इनमें से किसी भी Superscripts और Subscripts को अपने Android String संसाधन में कॉपी और पेस्ट कर सकते हैं।

उदाहरण:

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

परिणाम: ट्रेडमार्क ᵀᴹ

सुपरस्क्रिप्ट और सदस्यता पत्र

सुपरस्क्रिप्ट स्क्रिप्ट ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ ᴬ

सुपरस्क्रिप्ट माइनसक्यूल ᵃ c c c c c c c c c c c c c c c c c c c c c c c

सदस्यता माइनसक्यूल ₐ ule ule ule ule ule ule ule ule ule ule ule ule ule ule ule ule


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.