Как мне подкрасить этот 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.