एंड्रॉइड एक्टिविटी का बैकग्राउंड कलर प्रोग्रामेटिकली सेट करना
एक्टिविटी/व्यू का बैकग्राउंड कलर बदलने के दो मुख्य तरीके हैं: **XML में एट्रिब्यूट** (स्टेटिक) या **Java/Kotlin कोड में** (डायनामिक)। यह ट्यूटोरियल प्रोग्रामेटिक तरीका दिखाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio → File → New → New Project → "Empty Activity" → Finish।
चरण 2: Layout (activity_main.xml) — रूट व्यू को ID दें
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/rootLayout" <!-- रेफरेंस के लिए ID -->
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="24dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="इस एक्टिविटी का बैकग्राउंड पीला है"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#000000"
android:gravity="center" />
</LinearLayout>
चरण 3: MainActivity.java — setBackgroundColor()
package com.example.backgroundcolordemo;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private View rootLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// रूट व्यू प्राप्त करें
rootLayout = findViewById(R.id.rootLayout);
// तरीका 1: Color क्लास के बिल्ट-इन कांस्टेंट्स
rootLayout.setBackgroundColor(Color.YELLOW);
// तरीका 2: RGB मान से (0-255)
// rootLayout.setBackgroundColor(Color.rgb(255, 255, 0));
// तरीका 3: ARGB (अल्फा + RGB) — पारदर्शिता के लिए
// rootLayout.setBackgroundColor(Color.argb(200, 255, 255, 0)); // 200/255 अल्फा
// तरीका 4: हेक्स स्ट्रिंग पार्स करके
// rootLayout.setBackgroundColor(Color.parseColor("#FFFF00"));
// तरीका 5: रिसोर्स कलर (res/values/colors.xml में डिफ़ाइन)
// rootLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.my_yellow));
}
}
चरण 4: Colors.xml (res/values/colors.xml) — रिसोर्स कलर डिफ़ाइन करें
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="my_yellow">#FFFF00</color>
<color name="my_yellow_translucent">#CCFFFF00</color> <!-- 80% अपारदर्शिता -->
</resources>
चरण 5: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.backgroundcolordemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.BackgroundColorDemo">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
चलाएं और टेस्ट करें
- ऐप खोलें — पूरा स्क्रीन पीला दिखेगा, बीच में काला टेक्स्ट।
- कोड में अलग-अलग तरीके अनकमेंट करके टेस्ट करें।
🎨 Color क्लास के मुख्य मेथड्स
| मेथड | विवरण | उदाहरण |
|---|---|---|
Color.RED, Color.BLUE, ... | प्रीडिफ़ाइनड कलर्स | Color.YELLOW |
Color.rgb(r, g, b) | RGB से कलर इंट (अल्फा=255) | Color.rgb(255, 165, 0) → नारंगी |
Color.argb(a, r, g, b) | ARGB से कलर इंट | Color.argb(128, 255, 0, 0) → 50% पारदर्शी लाल |
Color.parseColor("#RRGGBB") | हेक्स स्ट्रिंग से पार्स | Color.parseColor("#FF00FF") |
Color.parseColor("#AARRGGBB") | हेक्स स्ट्रिंग (अल्फा सहित) | Color.parseColor("#80FF0000") |
Color.HSVToColor(hsv[]) | HSV ऐरे से कलर | float[] hsv = {0, 1, 1}; Color.HSVToColor(hsv) |
Color.colorToHSV(color, hsv[]) | कलर को HSV में बदलें | रिवर्स ऑपरेशन |
🖼️ बैकग्राउंड के अन्य प्रकार
// ड्रॉएबल रिसोर्स (इमेज, शेप, ग्रेडिएंट)
rootLayout.setBackgroundResource(R.drawable.my_background);
// ड्रॉएबल ऑब्जेक्ट (ग्रेडिएंट, शेप, लेयर-लिस्ट प्रोग्रामेटिकली)
GradientDrawable gradient = new GradientDrawable(
GradientDrawable.Orientation.LEFT_RIGHT,
new int[]{Color.YELLOW, Color.RED}
);
rootLayout.setBackground(gradient);
// XML में ग्रेडिएंट (res/drawable/bg_gradient.xml)
/*
<shape xmlns:android="...">
<gradient
android:startColor="#FFFF00"
android:endColor="#FF0000"
android:angle="0" />
</shape>
*/
// फिर: rootLayout.setBackgroundResource(R.drawable.bg_gradient);
⚠️ सामान्य गलतियाँ
- थीम/स्टाइल ओवरराइड: अगर थीम में
android:windowBackgroundसेट है, तो रूट व्यू का बैकग्राउंड उससे ढक सकता है।getWindow().setBackgroundDrawable(null)या थीम में@android:color/transparentसेट करें। - सही व्यू रेफरेंस:
findViewById(android.R.id.content)विंडो कंटेंट रूट देता है, लेकिन लेआउट रूट (R.id.rootLayout) बेहतर है। setBackgroundColor()vssetBackground(): पहला केवल सॉलिड कलर, दूसरा कोई भी Drawable स्वीकार करता है।
सारांश
- ✅
view.setBackgroundColor(Color.YELLOW)— सबसे सरल तरीका। - ✅
Color.rgb(),Color.argb(),Color.parseColor()— डायनामिक कलर के लिए। - ✅
ContextCompat.getColor(context, R.color.name)— रिसोर्स कलर (थीम-अवेयर)। - 🎨 ग्रेडिएंट/इमेज/शेप के लिए
setBackground(Drawable)याsetBackgroundResource()उपयोग करें। - 🎯 रूट लेआउट व्यू पर सेट करें, न कि एक्टिविटी पर सीधे।