Я использовал векторный селектор, который можно рисовать в xml, который работает хорошо, но в Java-коде происходит сбой, когда sdk <21. </p>
Вот мое использование XML:
<android.support.v7.widget.AppCompatTextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/common_selector_ic_back"/>
common_selecor_ic_back.xml
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/common_ic_back" />
</selector>
common_ic_back.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
Но я хочу изменить drawableLeft в коде, я пробовал триРешение, оба не удалось.
1
Drawable d1 = getResources().getDrawable(R.drawable.common_selector_ic_back);
сбой с
android.content.res.Ресурсы $ NotFoundException: файл res / drawable / common_selector_ic_back.xml из ID ресурса для рисования
0x7f080065
2
icon2 = AppCompatResources.getDrawable(this, R.drawable.common_selector_ic_back);
ошибка по той же причине
3
VectorDrawableCompat.create(context.getResources(), R.drawable.common_selector_ic_back, context.getTheme());
ошибка с журналом
Двоичный XMLДля строки строки файла №2 требуется viewportWidth> 0
Кто-нибудь сталкивался с проблемой?Можете ли вы сказать мне, как получить векторной селектор в аппаратном коде.
Решение:
Активность должна быть AppCompatActivity