في إصدار الاندرويد 5 قامت قوقل بإضافة دعم للفيكتور ولكن إصدارات الاندرويد القديمة لاتدعم هذا النوع من الصور ولكن في تحديث مكتبة support تم دعم VectorDrawableCompat و أيضا Animated VectorDrawableCompat .
ولا يخفى علينا أن للفيكتور أفضل من pngs سواء في الوضوح أو الحجم .
لاحظ الفرق في الصورة في الأسفل.
الاستخدام :
وتحتاج لاستخدام الفيكتور القيام بتحديث مكتبة الاندرويد Support إلى الإصدار 23.2
التفعيل :
من Bulid.gradle سنقوم بتفعيل flag كما يظهر في الاسفل :
اذا كنت تستخدم Gradle v2 :
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
اذا كنت تستخدم Gradle v1.5 :
android { defaultConfig { // Stops the Gradle plugin’s automatic rasterization of vectors generatedDensities = [] }
// Flag to tell aapt to keep the attribute ids around aaptOptions { additionalParameters "--no-version-vectors" } }
طريقة الاستخدام :
نعلم انه في مكتبة appcompat تم اضافة عناصر جديدة وذلك لاضافة المميزات الجديدة للاصدارات القديمة من اندرويد . وتم اضافة attribute جديد باسم srcCompat وهذا attrs يقوم باستبدال android:src ويمكنه التعامل مع Vector وايضاً الصور العادية .
سنقوم باضافة vector جديد باستخدام android Studio . من قائمة File -> new -> vector assets وقم باختيار الفيكتور المناسب او قم باضافته من جهازك مباشرة .
الان سنقوم باضافة Vector الى FloatActionButton كما نلاحظ في الكود بالاسفل :
<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" app:srcCompat="@drawable/ic_alarm_on_black_24dp" />
هنا قمنا باضافة Vector باستخدام xml ماذا عن كتابته في كلاس جافا ؟!
لم تتغير طريقة اضافة Vector في Java عن اضافة الصور فسيكون الكود كالتالي
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setImageResource(R.drawable.ic_alarm_on_black_24dp);
الان قم باستخدام Vector واكسب بعض الحجم في تطبيقك ?