تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  how to search in ListView items _xamarin.android Sajad 1 380 23-09-18, 10:20 PM
آخر رد: خربطة
  android- how to store image in SQLite and read it Sajad 1 583 14-07-18, 05:18 PM
آخر رد: Amir_Alzubidy
  SQLite (Insert, Delete, Update and Search)in Xamarin.Android Part2 Sajad 1 665 14-02-18, 09:52 PM
آخر رد: حريف برمجة
  SQLite in Xamarin.Android Part1 Sajad 2 768 12-02-18, 09:20 AM
آخر رد: sendbad100
  Android App Folders Sajad 2 431 10-12-17, 12:45 AM
آخر رد: حريف برمجة

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم