#android #svg
Я создала SVG-изображение в Inkscape и пыталась импортировать его в Android-проект. Для рендеринга SVG-изображений я использовала библиотеку svg-android.jar, и вот как выглядел код для отображения SVG-изображения в ImageView: SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.counter); Drawable drawable = svg.createPictureDrawable(); ImageView imageView = (ImageView)findViewById(R.id.counter_image); imageView.setImageDrawable(drawable); Но изображения вообще не было видно. После добавления строки: imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); изображение стало видимо, но все прямоугольники, в заливке которых был градиент, при запуске приложения оказались залиты чёрным цветом. Вот логи: SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: sodipodi:namedview SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: inkscape:grid SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: metadata SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: rdf:RDF SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: cc:Work SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: dc:format SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: dc:type SVGAndroid﹕ UNRECOGNIZED SVG COMMAND: dc:title SVGAndroid﹕ Didn't find shader, using black: linearGradient4279 SVGAndroid﹕ Didn't find shader, using black: linearGradient4295 SVGAndroid﹕ Didn't find shader, using black: linearGradient4315 SVGAndroid﹕ Didn't find shader, using black: linearGradient4315-8 Подскажите, как правильно рендерить SVG с градиентом для Android?
Ответы
Ответ 1
fill(s) or stroke(s) which uses url() (gradients and patterns are not supported in Android) После конвертации градиент выглядит примерно так(в лучшем случае): fillColor="url(#SVGID_1_)" для Android(точней для VectorDrawable) этого ничего не значит, и всё что он может залить(fill) полностью градиент, поэтому пока никак. Последняя новость от 24.02.16 они добавили support lib VectorDrawable
Комментариев нет:
Отправить комментарий