Integer Color → Hex String কনভারশন
Android-এ কালার ইন্টিজার (ARGB ফরম্যাট) কে হেক্সাডেসিমাল স্ট্রিং (#RRGGBB বা #AARRGGBB) এ কনভার্ট করার সহজ পদ্ধতি।
ধাপ ১: প্রজেক্ট তৈরি
Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট (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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
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);
// উদাহরণ কালার ইন্টিজার (ARGB)
int intColor = -16895234; // 0xFF00FF00 (Green)
// পদ্ধতি ১: Integer.toHexString (সর্বাধিক সাধারণ)
String hexColor = Integer.toHexString(intColor);
// ফলাফল: "ff00ff00" (8 ক্যারেক্টার = ARGB)
// পদ্ধতি ২: String.format (ফরম্যাটেড)
String hexFormatted = String.format("#%08X", intColor);
// ফলাফল: "#FF00FF00" (Uppercase, 8 ডিজিট)
// পদ্ধতি ৩: শুধু RGB (Alpha বাদ দিয়ে)
String hexRGB = String.format("#%06X", (0xFFFFFF & intColor));
// ফলাফল: "#00FF00"
// পদ্ধতি ৪: Color ক্লাস (API 26+)
// String hexModern = Color.toArgbString(intColor); // "#ff00ff00"
// প্রদর্শন
String output = "Original Int: " + intColor + "\n" +
"Hex (toHexString): #" + hexColor.toUpperCase() + "\n" +
"Hex (format ARGB): " + hexFormatted + "\n" +
"Hex (RGB only): " + hexRGB;
textView.setText(output);
}
}
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.colorconversion">
<application ...>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Color Int বুঝতে হলে (ARGB ফরম্যাট)
// 32-bit Integer: AARRGGBB // Alpha (8 bits) | Red (8 bits) | Green (8 bits) | Blue (8 bits) // উদাহরণ: int red = Color.RED; // 0xFFFF0000 = -65536 int green = Color.GREEN; // 0xFF00FF00 = -16711936 int blue = Color.BLUE; // 0xFF0000FF = -16776961 int white = Color.WHITE; // 0xFFFFFFFF = -1 int black = Color.BLACK; // 0xFF000000 = -16777216 int transparent = Color.TRANSPARENT; // 0x00000000 = 0 // ARGB কম্পোনেন্ট বের করা int alpha = Color.alpha(intColor); // 0-255 int red = Color.red(intColor); // 0-255 int green = Color.green(intColor); // 0-255 int blue = Color.blue(intColor); // 0-255
Hex String → Color Int (রিভার্স)
// "#RRGGBB" বা "#AARRGGBB" থেকে Color Int String hex = "#FF00FF00"; int colorInt = Color.parseColor(hex); // সবচেয়ে সহজ // ম্যানুয়াল পার্সিং (যদি # না থাকে) String hexNoHash = "FF00FF00"; int color = (int) Long.parseLong(hexNoHash, 16); if (hexNoHash.length() == 6) color |= 0xFF000000; // Alpha যোগ করুন
Color Utils (আধুনিক API)
// androidx.core.graphics.ColorUtils (API 26+ backport) import androidx.core.graphics.ColorUtils; // RGB → HSL float[] hsl = new float[3]; ColorUtils.RGBToHSL(red, green, blue, hsl); // HSL → RGB int color = ColorUtils.HSLToColor(hsl); // Luminance (ব্রাইটনেস) double luminance = ColorUtils.calculateLuminance(color); // Minimum Contrast Ratio (WCAG) double ratio = ColorUtils.calculateContrast(color1, color2);
সাধারণ ব্যবহারের ক্ষেত্রে
- ডাইনামিক থিমিং (রানটাইমে কালার পরিবর্তন)
- CSS/JS-এ কালার পাস করা (WebView, React Native Bridge)
- শেয়ার্ড প্রেফারেন্সে কালার সেভ করা (String হিসেবে)
- লগিং/ডিবাগিং-এ কালার ভ্যালু দেখানো
- গ্রেডিয়েন্ট/শেড জেনারেশন