برمجة الأندرويد

شرح التعامل مع الـ Vector فى الأندرويد

السلام عليكم ورحمة الله وبركاته

الكثير منا يواجه مشكلة تعدد احجام الشاشات الخاصة بنظام اندرويد وذلك لكثرة الاجهزة التي تعمل بهذا النظام ومطور تطبيقات اندرويد يواجه مصاعب بخصوص دعم جميع الشاشات ولعل من اكبر هذه المصاعب هو وجود 9 احجام مختلفة للايقونات وهذا يجعل التطبيق مليئ بالايقونات ويزيد من حجم التطبيق، لهذا قامت جوجل بدعم نوع من انواع الصور ويحتوي على الامتداد SVG وهو في نظام الاندرويد يتكون من ملف XML واحد لجميع الشاشات ويمكنك من التحكم بالحجم واللون عن طريق XML وقامت جوجل بدعم هذا النوع من الصور لانظمة اندرويد القديمة لتتمكن من استخدامها مع جميع الاصدارات.

ولكن يبقى السؤال كيف يمكن ان اقوم باستخدامها اولا لا بد ان تخبر اندرويد انك تريد استخدام صور من نوع SVG لهذا سنقوم بالذهاب الى ملف الـ gradle الخاص بالتطبيق ونضع هذا السطر

“vectorDrawables.useSupportLibrary = true”

داخل defaultConfig ليصبح بهذا الشكل

 

ثم نقوم بعمل Sync Now لملف الـ gradle الان اذهب الى مجلد res ثم الى Drawable بعدها قم بالضغط بزر الفأرة الايمن وقم باختيار new ثم Vector Asset

 

الان يوجد لديك خياران الخيار الاول هو ان تقوم باختيار ايقونة من الايقونات التي يوفرها لك Android Studio والثاني هو ان تقوم بتحميل الايقونة من الانترنت بصيغة SVG ثم تقوم باختيارها وسيقوم اندرويد ستوديو بتجهيزها لك، الان سنختار الخيار الاول وهو اختيار ايقونة جاهزة من اندرويد ستوديو

نقوم بالضغط على شعار الاندرويد الصغير الموجود على الجهة اليسار

والان تقوم باختيار ما تريد فامامك مجموعة واسعة من الايقونات يمكنك اختيارها انا سأقوم باختيار اول ايقونة واقوم بالضغط على ok

 

هنا يمكنك تغيير حجم واسم الايقونة ثم الضغط على next ثم Finish 

ستظهر الايقونة الان بصيغة XML على هذا الشكل يمكنك تغيير لون الايقونة عن طريق fillColor الموجودة في السطر السابع

وهذا شكل الايقونة بعد تغيير لونها

 

ما الان يبقى السؤال كيف يمكن التعامل مع هذا النوع من الايقونات هذا النوع لانه لا يدعم الاصدارات القديمة من اندرويد لانه ظهر في الاصدار الخامس من نظام اندرويد قامت جوجل بتخصيص custom attr له بحيث يمكنك من التعامل معه ويمكن التعامل معه مع ImageView عن طريق srcCompat بدل من src على هذا الشكل

ولكن بدل من استخدام الـ name space المسمى android سنقوم باستخدام app وبهذا نكون قد وضعناها ويمكن تغيير لونها عن طريق الـ attr المسمى tint بهذه الطريقة

 

كما تلاحظ قمت بوضع android:tint=”#000000” وقام بتغيير لون الايقونة الى اللون الاسود وبهذا اصبح لديك ايقونة تدعم جميع الاحجام المختلفة للشاشات وبملف xml واحد ولكن جوجل تقول انه لا ينصح باستخدام هذا النوع من الايقونات الا اذا كان حجمها اقل من 200dp اما اذا كان اكبر فيجب استخدام png لامور متعلقة بالـ Performance ولكن الشيء المزعج انه الا الان لم يتم دعم هذا النوع مع drawableRight او drawableLeft الخاصة بالـ EditText او TextView وننتظر دعمها قريبا.

 

الكاتب  : Mohamed Hamdan

السابق
درس Youtube Player API
التالي
برمجة تطبيق شات الدرس الأول

تعليق واحد

أضف تعليقا

  1. يوسف قال:

    مرحبا
    شكرا على المقالات المفيدة
    أواجه مشكلة عند فتح بروجيكت من النت أي اذا قمت بعمل داونلود لبروجيكت من موقع معين وحاولت فتحه بالاندرويد استيديو يظهر لي الخطأ التالي
    01:47:59 م Gradle sync failed: Cause: failed to find target with hash string ‘android-23’ in: C:\Users\DELL\AppData\Local\Android\Sdk
    لكن هذا الخطأ لايظهر عندما انشأ بروجيكت بشكل مباشر
    شكرا

اترك تعليقاً

This site uses Akismet to reduce spam. Learn how your comment data is processed.