Создайте drawable и передайте идентификатор drawable в функцию.Например, я создаю векторную карту с именем arrow_back.xml
.
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:autoMirrored="true">
<path
android:pathData="M20,11L7.8,11l5.6,-5.6L12,4l-8,8l8,8l1.4,-1.4L7.8,13L20,13L20,11z"
android:fillColor="#fff"/>
</vector>
Примечание : для отрисовки, на которую ссылается homeAsUpIndicatorId
, имеется закрытый модификатор, поэтому вы не можете получить к нему доступ напрямую.Однако приведенный выше код был скопирован из вектора, который можно нарисовать с небольшими изменениями.
Я передам идентификатор функции getDrawable()
следующим образом.
ContextCompat.getDrawable(context, R.drawable.arrow_back);
РЕДАКТИРОВАТЬ: Выполните следующие действия, чтобы получить Drawable от homeAsUpIndicatorId
:
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {R.attr.homeAsUpIndicator});
int attributeResourceId = a.getResourceId(0, 0);
ContextCompat.getDrawable(context, attributeResourceId);
a.recycle()