কম্পিউটার টিউটোরিয়াল

Android-এ কালার ইন্টিজারকে Hex String-এ কনভার্ট করা

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 হিসেবে)
  • লগিং/ডিবাগিং-এ কালার ভ্যালু দেখানো
  • গ্রেডিয়েন্ট/শেড জেনারেশন
  1. How to convert ISO 8601 string to Date/time object in Android?

  2. অ্যান্ড্রয়েডে ছবিকে Base64 স্ট্রিং-এ রূপান্তর করার পদ্ধতি

  3. অ্যান্ড্রয়েডে TextView-এ স্প্যান ব্যবহার করে টেক্সটের রঙ পরিবর্তন করার পদ্ধতি

  4. অ্যান্ড্রয়েডে মিলিসেকেন্ডকে ডেট ফরম্যাটে কনভার্ট করবেন কীভাবে?