Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में TextView स्पैन का कलर कैसे सेट करें?

SpannableString और ForegroundColorSpan के साथ आंशिक टेक्स्ट कलरिंग

यह उदाहरण दर्शाता है कि SpannableString का उपयोग करके TextView के विशिष्ट भागों का टेक्स्ट कलर कैसे बदलें।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट में TextView

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:textSize="16sp"
        android:padding="12sp"
        android:textStyle="bold|italic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>

</RelativeLayout>

चरण 3: SpannableString में कलर स्पैन लागू करें

src/MainActivity.java:

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.textView);
        String text = "मैं प्रार्थना की सराहना करता हूँ लेकिन मेरे पक्ष में पहले से ही भगवान हैं";

        SpannableString spannableString = new SpannableString(text);

        ForegroundColorSpan cyanSpan = new ForegroundColorSpan(Color.CYAN);
        ForegroundColorSpan blueSpan = new ForegroundColorSpan(Color.BLUE);
        ForegroundColorSpan greenSpan = new ForegroundColorSpan(Color.GREEN);

        // इंडेक्स 3-15: सियान
        spannableString.setSpan(cyanSpan, 3, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        // इंडेक्स 22-31: नीला
        spannableString.setSpan(blueSpan, 22, 31, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        // इंडेक्स 38-49: हरा
        spannableString.setSpan(greenSpan, 38, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        textView.setText(spannableString);
    }
}

स्पैन फ्लैग्स समझें

  • SPAN_EXCLUSIVE_EXCLUSIVE - स्पैन के बाहर टाइप करने पर स्पैन विस्तारित नहीं होता
  • SPAN_INCLUSIVE_INCLUSIVE - स्पैन के अंदर टाइप करने पर स्पैन विस्तारित होता है
  • SPAN_MARK_MARK - मार्कअप के लिए उपयोगी

चरण 4: मैनिफेस्ट

मानक मैनिफेस्ट (READ_PHONE_STATE परमिशन अनावश्यक है - टेम्पलेट से बचा हुआ)।

ऐप चलाएं

टेक्स्ट के विभिन्न भाग अलग-अलग रंगों (सियान, नीला, हरा) में दिखाई देंगे।

एंड्रॉइड में TextView स्पैन का कलर कैसे सेट करें?

  1. एंड्रॉइड में TextView का लेआउट वेट प्रोग्रामेटिकली कैसे सेट करें? एंड्रॉइड में TextView का लेआउट वेट प्रोग्रामेटिकली कैसे सेट करें?

    एंड्रॉइड में प्रोग्रामेटिकली Layout Weight सेट करना Layout Weight (android:layout_weight) केवल LinearLayout (या उसके सबक्लास) के चाइल्ड व्यूज पर काम करता है — RelativeLayout, ConstraintLayout, FrameLayout में इसका कोई प्रभाव नहीं पड़ता। मूल लेख का उदाहरण RelativeLayout में बटन का वेट सेट करने की कोश

  1. Android में कलर इंटीजर को हेक्स स्ट्रिंग में कैसे बदलें? Android में कलर इंटीजर को हेक्स स्ट्रिंग में कैसे बदलें?

    Android में रंग को इंटीजर (ARGB) से हेक्साडेसिमल स्ट्रिंग (#RRGGBB या #AARRGGBB) में बदलने का तरीका। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=https://schem

  1. Android Emulator का IP एड्रेस कैसे प्राप्त करें? Android Emulator का IP एड्रेस कैसे प्राप्त करें?

    WifiManager का उपयोग करके Android एमुलेटर/डिवाइस का स्थानीय IP एड्रेस प्रोग्रामेटिकली प्राप्त करने का तरीका। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=https