تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Layer List drawable in android
#1
بسم الله الرحمن الرحم

Layer List: عبارة عن drawable resource بحيث يتم من خلاله رسم عدة اشكال (مستطيل، دائري ...الخ) فوق بعض والشكل الاخير يطغى على كل الاشكال المرسومة.



في هذا الدرس سنعمل على مثال بحيث يتم تحويل شكل الـ Button الافتراضي الى الشكل التالي:


   

مع تغيير الشكل عند النقر.




حيث سنحتاج الى 3 ملفات xml: 

خطوات انشاء ملف xml داخل مجلد drawable:

Right Click --> Add --> New Item -- >Data --> xml file --> Add




1- default_button.xml
PHP كود :
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item >
        <shape
            android:shape="rectangle"
            android:useLevel="false">
            <solid android:color="#3a7058"/>
        </shape>

    </item>
    <item android:bottom="15dp">
        <shape
            android:shape="rectangle"
            android:useLevel="false">

            <solid android:color="#12525E"/>
        </shape>
    </item>


</layer-list> 


الملف اعلاه يحتوي على two items حيث كل item بداخله شكل المستطيل وكل مستطيل له لون مختلف عن الاخر.

طيب السؤال هنا كيف اقوم باظهار كلا الشكلين؟ حيث اننا نعلم ان الشكل الاخير يطغى على كل الاشكال.

الجواب عن طريق اقتطاع مساحة من الشكل الثاني داخل ال item وذلك باستخدام الخواص:

bottom, top, end, start

هنا استعملنا bottom حيث قمنا باستقطاع مساحة قدرها 15dp من الشكل الثاني حتى نقوم باظهار نفس الجزء من الشكل الاول.

2- clicked_button.xml
PHP كود :
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item >
        <shape
            android:shape="rectangle"
            android:useLevel="false">
            <solid android:color="#12525E"/>
        </shape>

    </item>
    <item android:bottom="15dp">
        <shape
            android:shape="rectangle"
            android:useLevel="false">
            <solid android:color="#3A7068"/>
        </shape>
    </item>


</layer-list> 

هنا فقط قمنا بتبديل الالوان بين الـ items.


3- button_style
PHP كود :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
    android:drawable="@drawable/clicked_button"/>
    <item android:state_pressed="false"
        android:drawable="@drawable/default_button"/>
</selector> 

في الملف اعلاه نختار الشكلين لكن مرة في حال النقر ومرة اخرة في الحالة الافتراضية لل button.


الخطوة الاخيرة هي اسناد الملف الاخير button_style الى الـ button عن طريق خاصية background:

PHP كود :
<Button
        android
:layout_width="200dp"
 
       android:layout_height="70dp"
 
       android:background="@drawable/button_style"
 
       android:text="Hello World!"
 
       android:padding="10dp"
 
       android:textAllCaps="false"
 
       android:textColor="#fff"
 
       android:textSize="20sp"
 
       /> 

تحياتي لكم
الرد }}}
#2
مشكور أستاذ سجاد الله يجزاك خير على عطائك المستمر ..

بالتوفيق للجميع
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: Sajad
#3
بارك الله فيك



snaptube vidmate
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  SQLite in Xamarin.Android Part1 Sajad 3 4,205 05-12-22, 07:56 PM
آخر رد: احمد كبه
  how to search in ListView items _xamarin.android Sajad 1 2,936 23-09-18, 10:20 PM
آخر رد: خربطة
  android- how to store image in SQLite and read it Sajad 0 4,698 14-07-18, 11:49 AM
آخر رد: Sajad
  SQLite (Insert, Delete, Update and Search)in Xamarin.Android Part2 Sajad 1 3,942 14-02-18, 09:52 PM
آخر رد: حريف برمجة
  Android App Folders Sajad 2 2,417 10-12-17, 12:45 AM
آخر رد: حريف برمجة

التنقل السريع :


يقوم بقرائة الموضوع: