Использование библиотеки svg-android - PullRequest
5 голосов
/ 11 июля 2011


Я пытаюсь использовать svg-android , чтобы отобразить карту дорог, которую я экспортировал из openstreetmap .
Я следую инструкциям учебника, и он отлично работает с графикой 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 Ответ

6 голосов
/ 19 ноября 2012

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

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

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

...