2016-03-10 4 views
10

Я очень взволнован новой возможностью установки векторных чертежей в макеты с использованием атрибута app:srcCompat="@drawable/icon", представленного в support-library 23.2.0.23.2.0 set vector drawable as background in 4.X

Но мне интересно, как я могу получить одну из этих программных средств или программно в качестве фона.

Я думал о чем-то вроде: ContextCompat.getDrawable(context, R.drawable.icon)

Является ли это вообще возможно?

+1

Я никогда не пробовал, так что я просто угадать, но мне кажется, что есть статический метод на VectorDrawableCompat называется 'createFromResource (Resource, id); это должно работать. https://android.googlesource.com/platform/frameworks/support/+/34cbdb2/v7/vectordrawable/src/android/support/v7/graphics/drawable/VectorDrawableCompat.java – Budius

+0

Кажется, что там нет 23.2. 0 в Android Studio. –

ответ

24

Хорошо, мне это удалось. Спасибо за @Budius за то, что он указал мне в правильном направлении.

Ответы лежит в VectorDrawable#create()

Resources resources = context.getResources(Resources, int, Theme); 
Theme theme = context.getTheme(); 
Drawable drawable = VectorDrawableCompat.create(resources, R.drawable.drawable, theme); 

Больше ввода: How to use vector drawables in Android API lower 21?

+0

Да, это сработало. Спасибо, что поделился! –

+2

Существует не xml-способ, как 'app: srcCompat' для просмотра, чтобы использовать' VectorDrawable' в качестве фона. Единственный способ использовать 'VectorDrawable' в качестве фонового pre android lollipop может быть ** VectorDrawableCompat **, спасибо за долю. –