Изменение одного цвета отрисовываемого объекта SVG в AndroidStudio - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь написать функцию, которая изменила бы определенный цвет файла SVG. Это векторный ресурс, так что это файл XML: я подумал, что это облегчит задачу, но это не так.

ColorFilter ничего не сделал для меня, так как это всего лишь фильтр. Я хотел бы изменить определенный цвет, передавая сам объект, чтобы передать его другой функции, которая преобразует его в BitmapDescriptor.

Функция для изменения цвета

private Drawable changeColor(Drawable mydrawable, Context context) {
        ContextThemeWrapper wrapper = new ContextThemeWrapper(context, R.style.BusinessColor);
        mydrawable.applyTheme(wrapper.getTheme());
        return mydrawable;
}

Частьdrawable Я хочу изменить

 <path
      android:pathData="path_data"
      android:fillColor="@color/scooter_green"/>

Ссылка styles.xml, которая изменит цвет

   <style name="BusinessColor" parent="DefaultColor">
        <item name="android:fillColor">@color/brown_piana</item>
    </style>

Использование HomeActivity

 BitmapDescriptor icon = new BitMapConverter().getBusinessBitmap(context, R.drawable.ic_map_marker_scooter);

Getbusinessbitmap

public BitmapDescriptor getBusinessBitmap(Context context, int drawableId) {
        Drawable drawable = ContextCompat.getDrawable(context, drawableId);
        Drawable business = changeColor(drawable, context);
        return getBitmap(business);

Так как стандартная раскраска объекта - scooter_green, я хочу решить в HomeActivity, когда менять цвет этого объекта на piana_brown. Сейчас значок не отображается, он нулевой.

Я бы дал вам дополнительную информацию, если она вам понадобится, пожалуйста, помогите мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...