একটি ColorStateList
হল এমন একটি বস্তু যা আপনি XML-এ সংজ্ঞায়িত করতে পারেন এবং একটি রঙ হিসাবে প্রয়োগ করতে পারেন যা বাস্তবে এটি যে View
অবজেক্টে প্রয়োগ করা হয় তার অবস্থার উপর নির্ভর করে রঙ পরিবর্তন করে৷ উদাহরণস্বরূপ, একটি Button
উইজেট বিভিন্ন অবস্থার মধ্যে একটিতে বিদ্যমান থাকতে পারে: চাপা, ফোকাস করা বা কোনটিই নয়। একটি রঙ রাজ্য তালিকা ব্যবহার করে, আপনি প্রতিটি রাজ্যের জন্য একটি ভিন্ন রঙ প্রদান করতে পারেন।
আপনি একটি XML ফাইলে রাষ্ট্র তালিকা বর্ণনা করুন. প্রতিটি রঙ একটি <item>
উপাদানে একটি একক <selector>
উপাদানের মধ্যে সংজ্ঞায়িত করা হয়। প্রতিটি <item>
যে অবস্থায় ব্যবহার করা হয় তা বর্ণনা করতে বিভিন্ন বৈশিষ্ট্য ব্যবহার করে।
প্রতিটি রাজ্যের পরিবর্তনের সময়, রাজ্যের তালিকাটি উপরে থেকে নীচের দিকে সরানো হয় এবং বর্তমান অবস্থার সাথে মেলে এমন প্রথম আইটেমটি ব্যবহার করা হয়। নির্বাচনটি "সেরা" ম্যাচের উপর ভিত্তি করে নয় , বরং প্রথম আইটেম যা রাজ্যের সর্বনিম্ন মানদণ্ড পূরণ করে।
দ্রষ্টব্য: আপনি যদি একটি স্ট্যাটিক রঙের সংস্থান প্রদান করতে চান তবে একটি সাধারণ রঙের মান ব্যবহার করুন।
- ফাইল অবস্থান:
-
res/color/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয়। - সংকলিত সম্পদ ডেটা টাইপ:
- একটি
ColorStateList
এ রিসোর্স পয়েন্টার - সম্পদ রেফারেন্স:
- জাভাতে:
R.color. filename
XML-এ: @[ package :]color/ filename
- সিনট্যাক্স:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:lStar="floating_point_value"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- উপাদান:
-
<selector>
- প্রয়োজন। এটি মূল উপাদান। এক বা একাধিক
<item>
উপাদান রয়েছে। গুণাবলী:
-
xmlns:android
- স্ট্রিং প্রয়োজন। XML নামস্থান সংজ্ঞায়িত করে, যা
"http://schemas.android.com/apk/res/android"
৷
-
<item>
- নির্দিষ্ট অবস্থার সময় ব্যবহার করার জন্য একটি রঙকে সংজ্ঞায়িত করে, যেমনটি এর বৈশিষ্ট্যগুলির দ্বারা বর্ণনা করা হয়েছে৷ এটি একটি
<selector>
উপাদানের সন্তান। গুণাবলী:
-
android:color
- হেক্সাডেক্সিমাল রঙ । প্রয়োজন রঙটি একটি RGB মান এবং ঐচ্ছিক আলফা চ্যানেলের সাথে নির্দিষ্ট করা হয়েছে।
মানটি সর্বদা একটি পাউন্ড ( #
) অক্ষর দিয়ে শুরু হয়, তারপরে নিম্নলিখিত ফর্ম্যাটে আলফা-লাল-সবুজ-নীল তথ্য দ্বারা অনুসরণ করা হয়:
- # আরজিবি
- # ARGB
- # আরআরজিবিবি
- # AARRGGBB
-
android:lStar
- ফ্লোটিং পয়েন্ট । ঐচ্ছিক এই বৈশিষ্ট্যটি বেস রঙের উপলব্ধিগত আলোকে পরিবর্তন করে। এটি 0 এবং 100 এর মধ্যে একটি ফ্লোটিং-পয়েন্ট মান বা একটি থিম অ্যাট্রিবিউট লাগে যা এইভাবে সমাধান করে। আইটেমটির সামগ্রিক রঙ গণনা করা হয় বেস কালারকে একটি অ্যাক্সেসিবিলিটি ফ্রেন্ডলি কালার স্পেসে রূপান্তর করে এবং
lStar
অ্যাট্রিবিউটে নির্দিষ্ট করা মানতে এর L* সেট করে। উদাহরণ: android:lStar="50"
-
android:state_pressed
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি ট্যাপ করা হয়, যেমন যখন একটি বোতাম স্পর্শ করা হয় বা ক্লিক করা হয়। এটি "false"
যদি এই আইটেমটি ডিফল্ট, নন-ট্যাপ অবস্থায় ব্যবহার করা হয়। -
android:state_focused
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি ফোকাস করা হয়, যেমন যখন ট্র্যাকবল বা ডি-প্যাড ব্যবহার করে একটি বোতাম হাইলাইট করা হয়। এটি "false"
যদি এই আইটেমটি ডিফল্ট, নন-ফোকাসড অবস্থায় ব্যবহার করা হয়। -
android:state_selected
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি নির্বাচন করা হয়, যেমন যখন একটি ট্যাব খোলা হয়। এটি "false"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি নির্বাচন করা হয় না। -
android:state_checkable
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি পরীক্ষাযোগ্য হয়। এটি "false"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি পরীক্ষাযোগ্য না হয়৷ শুধুমাত্র উপযোগী যদি বস্তুটি একটি চেকযোগ্য এবং অ-চেকযোগ্য উইজেটের মধ্যে স্থানান্তর করতে পারে। -
android:state_checked
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি চেক করা হয়। এটি "false"
যদি এটি ব্যবহার করা হয় যখন বস্তুটি অনির্বাচিত হয়। -
android:state_enabled
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন বস্তুটি সক্রিয় থাকে, স্পর্শ বা ক্লিক ইভেন্টগুলি গ্রহণ করতে সক্ষম। এটি "false"
যদি এটি ব্যবহার করা হয় যখন বস্তুটি নিষ্ক্রিয় থাকে। -
android:state_window_focused
- বুলিয়ান
"true"
যদি এই আইটেমটি ব্যবহার করা হয় যখন অ্যাপ্লিকেশন উইন্ডোতে ফোকাস থাকে, অর্থাৎ অ্যাপ্লিকেশনটি অগ্রভাগে থাকে। এটি "false"
যদি এই আইটেমটি ব্যবহার করা হয় যখন অ্যাপ্লিকেশান উইন্ডোতে ফোকাস না থাকে, যেমন বিজ্ঞপ্তির ছায়াটি নিচের দিকে টানা হয় বা একটি ডায়ালগ উপস্থিত হয়৷
দ্রষ্টব্য: রাজ্যের তালিকার প্রথম আইটেমটি যা বস্তুর বর্তমান অবস্থার সাথে মেলে তা প্রয়োগ করা হয়। সুতরাং, যদি তালিকার প্রথম আইটেমটিতে পূর্ববর্তী রাষ্ট্রের কোনো বৈশিষ্ট্য না থাকে, তাহলে এটি প্রতিবার প্রযোজ্য হয়। এই কারণে, আপনার ডিফল্ট মানটি সর্বশেষে রাখুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।
- উদাহরণ:
- XML ফাইল
res/color/button_text.xml
এ সংরক্ষিত হয়েছে:<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
নিম্নলিখিত লেআউট XML একটি View
রঙের তালিকা প্রয়োগ করে:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- এছাড়াও দেখুন: