Как изменить цвет изображения SVG в Android.Изображения загружаются с веб-API - PullRequest
0 голосов
/ 17 июня 2019

У меня возникла проблема, например: я загружаю изображение из веб-интерфейса и успешно настроен в режиме просмотра изображений.Я не могу изменить цвет загруженного изображения SVG.Я пробовал tintColor в xml и setFilterColor () из файла .java, но ничего для меня не работает.Есть ли решение, пожалуйста, ответьте на это сообщение.

public static void loadSvgWithColor(final Context context, String url, final int color, final ImageView target) {
    if (httpClient == null) {
        httpClient = new OkHttpClient.Builder()
                .cache(new Cache(context.getCacheDir(), 5 * 1024 * 1014))
                .build();
    }
    if (!url.equals("")) {
        Request request = new Request.Builder().url(url).build();
        httpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                target.setImageResource(R.drawable.app_icon);
                target.setColorFilter(color);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                InputStream stream = response.body().byteStream();
                Sharp.loadInputStream(stream).into(target);
                stream.close();
                target.setColorFilter(color);
       }
        });
    } else {
        target.setImageResource(R.drawable.app_icon);
        target.setColorFilter(color);
    }
}

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Используемая вами библиотека Sharp генерирует PictureDrawable и помещает ее в ваш ImageView.Последнее, что я проверял, методы android:tint и setColorFilter() не работают в PictureDrawables.

Я могу вспомнить пару решений:

0 голосов
/ 17 июня 2019

Отредактируйте поток файла SVG, когда вы получили API, и установите в imageview По этому образцу: without Edit color

Edited color

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