SVG в Bitmap при преобразовании во время выполнения в Android

Как преобразовать SVG (масштабируемую векторную графику) в растровое изображение во время выполнения в Android?

Пожалуйста, если возможно, предоставьте мне точный фрагмент кода или точные ссылки. Я совсем новичок в разработке приложений для Android.


person Hikmat Khan    schedule 26.08.2011    source источник


Ответы (2)


Следуйте инструкциям по svg-android, чтобы получить PictureDrawable из файла SVG. Затем вам нужно создать Bitmap из размера PictureDrawable и передать его Canvas. Когда Canvas теперь рисует Picture из PictureDrawable, текущее растровое изображение, которое вам нужно, рисуется (создается) во время выполнения.

PictureDrawable pictureDrawable = svg.createPictureDrawable();
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap); 
canvas.drawPicture(pictureDrawable.getPicture()); 
currentBitmap = bitmap;
person TouchBoarder    schedule 10.02.2013

Вы пытаетесь сделать это в собственном приложении для Android? Или в браузере Android с помощью JavaScript?

Если вы находитесь в более позднем лагере, вы можете использовать JavaScript для синтаксического анализа SVG и рендеринга результатов в элемент холста HTML5 (который представляет собой растровую поверхность). Есть две библиотеки, которые могут помочь вам сделать это:

После того, как вы используете эти библиотеки для рендеринга SVG на холст, вы можете дополнительно получить файл статического изображения с холста. Обратитесь к этой ветке переполнения стека для получения более подробной информации об этом втором шаг.

person Todd    schedule 17.02.2012
comment
Он ничего не говорит о веб-браузере, ваш пост не имеет значения - person animaonline; 22.09.2013