قائمة حالة اللون

الإعلانات

مصدر قائمة حالة اللون

مصدر قائمة حالة اللون ، عبارة عن كائن يمكنك تعريفه في ملف XML حيث يمكنك تطبيقه كلون، ولكنه سوف يغير الألوان فعلياً، بناءاً على حالة كائن العرض الذي يتم تطبيقه عليه.

مثال، عنصر واجهة زر، يمكن أن يوجد في، واحدة من عدة حالات مختلفة (الضغط أو التركيز أو لا شيء منهما)، و بإستخدام قائمة حالة اللون، يمكنك توفير لون مختلف خلال كل حاله.

يمكنك وصف قائمة الحاله في ملف XML. كل لون معرف في عنصر <item> بداخل عنصر <selector>. يستخدم كل عنصر <item> سمات مختلفة لوصف الحالة التي يجب إستخدامه فيها.

أثناء كل تغيير في الحاله، تنتقل قائمة الحاله من الأعلى إلى الأسفل، وسيتم إستخدام أول عنصر يتطابق مع الحاله الحاليه – لا يعتمد الإختيار على “أفضل تطابق”، لكن ببساطة يختار أول عنصر يستوفي المعايير الأدنى للحاله.

 

 ملاحظة: إذا كنت تريد توفير مصدر ألوان ثابت، أستخدم قيمة لون بسيطة.

موقع الملف:

res/color/filename.xml
يستخدم اسم الملف كمعرف للمصدر.

جمع نوع بيانات المصادر:

تشير المصادر إلى ColorStateList.

الإشارة للمصدر:

في ملف الجافا: R.color.filename
في ملف XML:
package:]color/filename]@

بناء الجملة:

العناصر

عنصر <selector>

مطلوب. يجب أن يكون هذا العنصر الأساسي. يحتوي على واحدة أو أكثر من عناصر <item>.

السمات:

xmlns:android

تمثل بالمتغير سلسلة. مطلوب. تقوم بتحديد نطاق XML الذي يجب أن يكون:
"http://schemas.android.com/apk/res/android".


عنصر <item>

يقوم بتعريف لون يستخدم أثناء حالات معينه، كما هو موضح في سماته. يجب أن يكون تابع لعنصر <selector>.

السمات:

سمة android:color

نظام ألوان سداسي عشري. مطلوب. اللون محدد بقيمة RGB وقناة ألفا إختياريه.

تبدأ القيمة دائماً برمز (#)، ثم تتبعها معلومات Alpha-Red-Green-Blue بإحدى التنسيقات التاليه:

#RGB
#ARGB
#RRGGBB
#AARRGGBB

 

سمة 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 هذا قائمة الألوان على المعاينه:

راجع أيضاً:

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

 

الإعلانات