Как мне подкрасить этот PictureDrawable?

Я использую svgandroid чтобы генерировать PictureDrawableс SVG сырых ресурсов. Однако я не могу применить цветовой фильтр к рисованному объекту, созданному таким образом.

Старый код с использованием PNG

icon = getResources().getDrawable(R.drawable.ic_braille);
icon.setColorFilter(0x88880000, Mode.MULTIPLY);
((ImageView)v.findViewById(R.id.icon)).setImageDrawable(icon);

работает, но

icon = SVGParser.getSVGFromResource(getResources(), R.raw.ic_braille).createPictureDrawable();
icon.setColorFilter(0x88880000, Mode.MULTIPLY);
((ImageView)v.findViewById(R.id.icon)).setImageDrawable(icon);

не. Я попытался применить цветовой фильтр к Drawable, к ImageView (после установки для него drawable), через XML, даже к Drawable после установки его в качестве Drawable ImageView, либо в порядке для PNG, но ни один не работает для PictureDrawable. Замена setImageDrawable от setBackgroundDrawableкак полагают некоторые, не делает рисование вообще. Я использую код на Android 1.6, 2.3, 4.0, без разницы. Я проверил источник библиотеки SVG, она не касается цветовых фильтров ни в одной точке. Что я делаю неправильно? Тонировка недоступна для некоторых видов выдвижных предметов?

1 ответ

Решение

Используйте этот форк svg-android: https://github.com/japgolly/svg-android

Он поддерживает ColorFilters.

Другие вопросы по тегам