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

एंड्रॉइड में टेक्स्ट पर शैडो कैसे जोड़ें?

एंड्रॉइड में TextView पर टेक्स्ट शैडो लागू करना

यह ट्यूटोरियल XML और प्रोग्रामेटिकली दोनों तरीकों से टेक्स्ट पर शैडो इफेक्ट जोड़ने को कवर करता है।

विधि 1: XML एट्रिब्यूट्स (सबसे सरल)

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="नमस्ते दुनिया!"
    android:textSize="48sp"
    android:textStyle="bold|italic"
    android:textColor="#FF00FF"
    android:shadowColor="#0000FF"
    android:shadowDx="4"
    android:shadowDy="4"
    android:shadowRadius="2" />

XML एट्रिब्यूट्स समझाए गए:

एट्रिब्यूट विवरण
android:shadowColor शैडो का रंग (हेक्स या कलर रिसोर्स)
android:shadowDx क्षैतिज ऑफसेट (पिक्सेल में)
android:shadowDy लंबवत ऑफसेट (पिक्सेल में)
android:shadowRadius ब्लर रेडियस (0 = शार्प शैडो)

विधि 2: प्रोग्रामेटिकली (Java/Kotlin)

import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView = findViewById(R.id.textView);
        
        // setTextColor और setShadowLayer का उपयोग
        textView.setTextColor(Color.MAGENTA);
        
        // पैरामीटर्स: radius, dx, dy, shadowColor
        textView.setShadowLayer(8f, 6f, 6f, Color.BLUE);
        
        // शैडो हटाने के लिए:
        // textView.setShadowLayer(0, 0, 0, Color.TRANSPARENT);
    }
}

विधि 3: SpannableString के साथ विशिष्ट टेक्स्ट पर शैडो

import android.graphics.Color;
import android.text.SpannableString;
import android.text.style.ShadowSpan;

SpannableString spannable = new SpannableString("शैडो वाला टेक्स्ट सामान्य टेक्स्ट");
// केवल पहले 8 कैरेक्टर्स पर शैडो
spannable.setSpan(new ShadowSpan(4f, 3f, 3f, Color.RED), 0, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannable);

उन्नत इफेक्ट्स

मल्टीपल शैडो (लेयर-लिस्ट के माध्यम से)

TextView सीधे मल्टीपल शैडो सपोर्ट नहीं करता, लेकिन लेयर-लिस्ट बैकग्राउंड का उपयोग कर सकते हैं:

<!-- res/drawable/text_shadow_bg.xml -->
<layer-list xmlns:android="https://schemas.android.com/apk/res/android">
    <!-- शैडो लेयर -->
    <item android:left="2dp" android:top="2dp">
        <shape>
            <solid android:color="#80000000" />
            <corners android:radius="4dp" />
        </shape>
    </item>
    <!-- मुख्य टेक्स्ट लेयर -->
    <item android:bottom="2dp" android:right="2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

निऑन/ग्लो इफेक्ट

// निऑन ग्लो इफेक्ट
textView.setTextColor(Color.CYAN);
textView.setShadowLayer(10f, 0f, 0f, Color.CYAN);
textView.setShadowLayer(20f, 0f, 0f, Color.BLUE); // लेयर नहीं होगा, अंतिम जीतता है

// समाधान: कस्टम व्यू या Canvas ड्राइंग का उपयोग करें

Kotlin एक्सटेंशन फंक्शन

fun TextView.applyShadow(
    radius: Float = 4f,
    dx: Float = 2f,
    dy: Float = 2f,
    color: Int = Color.BLACK
) {
    setShadowLayer(radius, dx, dy, color)
}

// उपयोग:
textView.applyShadow(radius = 8f, dx = 4f, dy = 4f, color = Color.BLUE)

सामान्य उपयोग के मामले

  • पठनीयता में सुधार (विशेषकर इमेज बैकग्राउंड पर)
  • विजुअल हायरार्की बनाना
  • बटन/लेबल पर जोर देना
  • निऑन/रेट्रो स्टाइल UI

पैरामीटर गाइड

  • Radius 0-2: शार्प, कुरकुरा शैडो
  • Radius 3-6: नरम, प्राकृतिक शैडो
  • Radius 8+: डिफ्यूज, ग्लो जैसा इफेक्ट
  • Dx/Dy पॉजिटिव: नीचे-दाएं शैडो
  • Dx/Dy नेगेटिव: ऊपर-बाएं शैडो
  1. Android TextView में लाइन ब्रेक (नई लाइन) कैसे जोड़ें? Android TextView में लाइन ब्रेक (नई लाइन) कैसे जोड़ें?

    Android TextView में लाइन ब्रेक जोड़ने के तरीके यह ट्यूटोरियल दिखाता है कि कैसे strings.xml में \n एस्केप सीक्वेंस या HTML <br> टैग का उपयोग करके TextView में बहु-लाइन टेक्स्ट प्रदर्शित किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण

  1. Android TextView में टेक्स्ट को जस्टिफाई कैसे करें? Android TextView में टेक्स्ट को जस्टिफाई कैसे करें?

    TextView में टेक्स्ट जस्टिफिकेशन Android 8.0 (API 26) से android:justificationMode=inter_word एट्रिब्यूट का उपयोग करके TextView में टेक्स्ट को जस्टिफाई (दोनों किनारों पर संरेखित) किया जा सकता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें (न्यूनतम API 26 या अधिक)। चरण 2

  1. Android TextView में टेक्स्ट को जस्टिफाई कैसे करें? Android TextView में टेक्स्ट को जस्टिफाई कैसे करें?

    यह उदाहरण दर्शाता है कि Android में TextView में टेक्स्ट को जस्टिफाई (दोनों किनारों पर अलाइन) कैसे किया जाता है। समस्या Android का स्टैंडर्ड TextView android:gravity=center_horizontal या left|right से जस्टिफिकेशन सपोर्ट नहीं करता। API 26 (Android 8.0) से android:justificationMode=inter_word उपलब्ध