Использование библиотеки svg-android


я пытаюсь использовать SVG-Android для отображения дорожной карты, которую я экспортировал из http://www.openstreetmap.org/.
Я следую инструкциям учебника, и он отлично работает с графикой test.svg (3 КБ). Но экспортированная карта составляет около 500 КБ. Когда я пытаюсь загрузить карту, я получаю исключение SVGParseException:

System.err: com.larvalabs.svgandroid.SVGParseException: java.lang.NumberFormatException
System.err:     at com.larvalabs.svgandroid.SVGParser.parse(Unknown Source)
System.err:     at com.larvalabs.svgandroid.SVGParser.getSVGFromResource(Unknown Source)
System.err:     at my.package.view.SVGMapView.loadSVGImage(SVGMapView.java:141)

строка 141 говорит:

svg = SVGParser.getSVGFromResource(getResources(), R.raw.test);

Есть ли возможность предварительно загрузить изображение SVG в дополнительный поток, или есть лучшее решение для моей проблемы?

Спасибо

1 ответ

В этом случае происходит то, что библиотека svg для Android довольно ограничена, поскольку она не поддерживает полную спецификацию SVG. Карта, которую вы сохранили, включает в себя некоторые функции, которыми svg-android просто не может управлять. К сожалению, с этим ничего не поделаешь, кроме как попробовать другой формат.

Между прочим, многопоточность не исправит проблему. Это может привести к загрузке изображения в фоновом режиме, но это не решит фундаментальную проблему: файл SVG просто содержит вещи, которые невозможно проанализировать.

Вы можете загрузить файл с помощью автономного инструмента SVG и повторно сохранить его в требуемом формате SVG Basic 1.1.

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