fbpx

انشاء أزرار بشكل دائري أو حواف مائلة Rounded Buttons

السلام عليكم

عند انشاء زر جديد في ملف ال layout يكون شكل الزر مستطيلا وحوافه تقريبا حادة , في هذا الدرس سوف نتعرف كيفية جعل الزر دائري الشكل وجعل جوافه ناعمة , وهذه الطريقة تدعم الاصدارات القديمة من الأندرويد

في البداية سوف ننشئ ملفين drawable الأول سوف يكون لاصدارات الأندرويد ما قبل (Lollipop (Android 5  , والثاني Lollipop وما بعده  وسوف نحتاج أيضا إلى ملفين آخرين , واحد لتعيين الشكل الدائري و الآخر لإضافة التأثير عند الضغط .

لأننا سوف نضيف خاصية ripple effect اذا كان الاصدار Lollipop لأن هذه الخاصة لا تعمل إلا في الاصدار الخامس من الأندرويد , أما للاصدارات السابقة فسوف نجعل الزر دائري من دون إضافة تأثير ال ripple ولكن سوف نغير اللون عند الضغط .

الآن اذهب إلى ملف res > drawable   في مشروعك وانقر باليمين ثم اختر New > drawable resource file  الآن اكتب اسم للملف (سوف أسميه button_background ) ثم اضغط OK

والآن كرر العملية وأنشئ ملف بنفس الاسم تماما ولكن اختر version  من القائمة Available qualifiers واضغط السهم ثم اكتب 21 (أي اصدار API 21 )

لن نعدل على الملفين حاليا

 سوف ننشئ ملفين drawable آخرين واحد سوف يكون لتعيين شكل الزر قبل الضغط , والثاني  لإضافة التأثير بعد الضغط ,طبعا سوف نستخدمها في الملف الأول الذي أنشأناه لأنه خاص بالاصدارات ما قبل الاندرويد lollipop

قمت بتسمية الملف الأول ب RoundButton , قم بإضافة هذا الكود :

الملف الثاني سميته Clicked_Button :
layer_list : هي مثل مصفوفة بامكانك استخدام أي خاصية بداخلها ,فقط تقوم بإضافة <item > وبعدها تختار أي خاصية تريد اضافتها

shape : تستخدم لتعيين شكل الزر ,واخترنا oval وتعن دائرة

solid : هي لون الزر

corners : الحواف الخاصة بالزر , قمت بإمالتها قليلا

الفرق بين الملف الأول والثاني هو اللون فقط , أي عند الضغط سوف يتغير اللون , والآن سوف نتعلم كيفية استخدامهما في button_background أضف هذا الكود إلى الملف الخاص بإصدارات الأندرويد ما قبل API 21 :

state pressed = “true” : تعني أنه عند الضغط , اجعل الخلفية clicked_button 

في الأسفل قمنا بتعيين الخلفية RoundButton أي انه في الحالة العادية تكون هذه هي خلفية الزر

بامكانك إضافة أي تعديل تريده عند الضغط على الزر , مثل تغيير الشكل ,الحجم ,اللون أو إضافة stroke بداخل ملف clicked_button

بالنسبة ل button_background الخاص باصدارات اللوليبوب فسوف نضيف خاصية ripple وشكل oval :

android:color في داخل تاغ ripple تعني لون التأثير ,  وبعدها نستخدم shape لجعل الشكل دائري و solid لتعيين اللون قبل الضغط

ما تبقى هو انشاء زر جديد :

ضع هذا الزر في أي مكان في ال layout ثم شغل البرنامج  وسوف ترى تأثير ال ripple اذا كان اصدار الجهاز هو لوليبوب , أو سوف يتغير اللون عند الضغط  اذا  كان الاصدار أقل من اللوليبوب

أتمنى أنكم استفدتم 🙂 ,  وانتظروا الدروس القادمة

 

 

 

عن Yaser Alosh

ياسر , من سوريا , أحب أن استخدم الحاسوب وأتعلم كل ما يتعلق به ,, بدأت بتعلم البرمجة , " كهواية " منذ بضعة أشهر , أعجبني مجال الأندرويد لأنه بسيط وسهل التعلم ثم بدأت بتعلم برمجة تطبيقاته , ولقد ساعدني موقع "اندرودي عربي " كثير في ذلك

شاهد أيضاً

عرض صورة متحركة داخل الطبيق

بسم الله الرحمن الرحيم في كثير من الاوقات نحتاج الى عرض صورة متحركة داخل تطبيقنا …

برمجة custom Toast بطرق مختلفة

بسم الله الرحمن الرحيم الكثير منا عندما يبرمج تطبيق للاندرويد يحتاج الى وضع Toast في …

كيفية تغيير الباكيج نيم Package من الاندرويد ستوديو

بسم الله الرحمن الرحيم الكثير من المبتدئين في مجال برمجة تطبيقات الاندرويد, عندما يقوموا بتحميل …

2 تعليقات

  1. ابو محمد

    السلام عليكم أخي جزاك الله خيرا على هذ الجهد الرائع والعمل الممتاز الذي اجتهدت عليه دون ما طلب مقابل له نسال الله أن لا يحرمك الأجر…
    أخي إذا تكرمت عندي استفسار بسيط في ما يخص عمل seekbar لصوتيات mp3
    الطريقة التي أوضحتها في دروسك واضحة وبسيطة لكن المشكلة إذا أردت أن أطبقها على أكثر من صوتية لا أوفق في كتابة الكودات كتابة صحيحة فيا ليت أتراعين في هذه المسألة وتوضح لنا طريقتها على أكثر من صوتية جزاك الله خيرا
    كذلك بالنسبة لطريق تعريف media player إذا أردت أن أربطها بصوتيات كثير فما التعريف والدالة المناسبتين
    جزاك الله خيرا لو تتكرم بتوضيح ولك منا جزيل الشكر وكامل التقدير

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

%d مدونون معجبون بهذه: