Я получаю только пустой белый экран при использовании svg-android
назначение: Я хочу отобразить файл изображения SVG, используя предпочтительно ImageView.
Попытка 1:
Я использую svg-android библиотека для этого.
-
Я после учебник слово в слово. Я просто скопировал их код в свой onCreate, прокомментировал мой код приложения из onCreate.
I у вас есть заставка перед этим, но я сомневаюсь, что это будет все равно вмешивайся. В любом случае, я просто изменю запуск намерений и после обновления.
Я добавил их банку в папку libs и сослался на нее.
результат 1:
Я тестирую на Samsung galaxy I93000 (международная версия)
все, что я получаю, это белый экран.
нет ошибок компиляции или выполнения.
вывод Logcat выглядит следующим образом:
01-13 01:22:11.755: D/dalvikvm(24889): GC_FOR_ALLOC freed 52K, 7% free 12198K/12995K, paused 17ms, total 17ms 01-13 01:22:11.765: I/dalvikvm-heap(24889): Grow heap (frag case) to 17.000MB for 4642816-byte allocation 01-13 01:22:11.810: D/dalvikvm(24889): GC_CONCURRENT freed 1K, 5% free 16730K/17543K, paused 15ms+2ms, total 43ms 01-13 01:22:12.080: D/dalvikvm(24889): GC_FOR_ALLOC freed <1K, 5% free 16731K/17543K, paused 13ms, total 13ms 01-13 01:22:12.100: I/dalvikvm-heap(24889): Grow heap (frag case) to 21.928MB for 5168972-byte allocation 01-13 01:22:12.125: D/dalvikvm(24889): GC_CONCURRENT freed <1K, 4% free 21779K/22599K, paused 12ms+2ms, total 25ms 01-13 01:22:12.560: D/libEGL(24889): loaded /system/lib/egl/libEGL_mali.so 01-13 01:22:12.595: D/libEGL(24889): loaded /system/lib/egl/libGLESv1_CM_mali.so 01-13 01:22:12.600: D/libEGL(24889): loaded /system/lib/egl/libGLESv2_mali.so 01-13 01:22:12.605: D/(24889): Device driver API match 01-13 01:22:12.605: D/(24889): Device driver API version: 10 01-13 01:22:12.605: D/(24889): User space API version: 10 01-13 01:22:12.605: D/(24889): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 01-13 01:22:12.670: D/OpenGLRenderer(24889): Enabling debug mode 0
обновление 1:
Я попытался сделать действие, которое показывает графику SVG в качестве основного действия из манифеста. Результаты не меняются.
обновление 2:
пробуем другой библиотеки/способ сделать это - ImageView с поддержкой SVG. Опубликует результаты.
обновление 3:
чтобы вы знали, я уже посмотрел на поддержка SVG на Android. Ответы там на самом деле не предоставляют собственного решения. Одним из обходных путей было бы создание статических html-страниц, по одной для каждого svg, ссылаясь на библиотеку SVG js. Это вообще не кажется возможным. Я был бы тем человеком, которого люди проклинают, когда смотрят на наследие. код.
Как вы могли догадаться, вышеупомянутая пробная версия не сработала достаточно хорошо.
2 ответов
вы, вероятно, уже нашли решение, но для дальнейшего использования:
Я тестирую на Samsung galaxy I93000 (международная версия)
все, что я получаю, это белый экран.
нет ошибок компиляции или выполнения.
вероятно, вам нужно отключить аппаратное ускорение для ImageView, который вы используете:
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
У меня была такая же проблема с вилкой svg-android, и это было исключительно из-за аппаратное ускорение.
хорошо, после одной полной бессонной ночи, это то, что у меня есть. :)
надеюсь 1:
*TPSVG_Android_SVG_Library:* (это то, что я использовал, т. е. мое одобрение ;))
попробовал библиотеку этого благословенного человека. Сработало как по волшебству. Он расширяет свой пользовательский вид из вида, так что у вас есть большинство основных параметров для layouting. В нем только один участник. Я немного против используя его на производстве, по крайней мере, на долгосрочной основе. Но слава его работе и большое спасибо, поскольку она удовлетворила мою непосредственную потребность.
использование довольно прямолинейно для этого, anywho я опишу его грубо.
- загрузите РЕПО в виде zip и импортируйте его в eclipse
- добавьте его в качестве проекта библиотеки в свой проект (свойства проекта -> Android)
-
используйте его так в onCreate:
SVGView svgView = (SVGView)это.команду findViewById(Р. ИД.svgImage); SVGParserRenderer image = новый SVGParserRenderer (это, Р. raw.аниме); svgView.setSVGRenderer (изображение, null); svgView.setBackgroundColor(цвет.Белый);
Я использовал FrameLayout для позиционирования этого. lotta проб и ошибок было необходимо, как это не появляется в Редакторе WYSIWYG для android. Вы можете временно заменить книги и заниматься форматирование.
- любые параметры, используемые в этом теге, которые не принадлежат классу View, вызовут ошибки компиляции
вопрос: Я еще не совсем понял, как переключать drawables (SVG) на этом представлении во время выполнения. Если кто-то, что вон, пожалуйста, после процедуры.
Надежда 2:
Это кажется многообещающим. У них есть несколько векторных приложений, основанных вместе с библиотекой. Я не мог понять, как использовать это для загрузки SVG drawable (кажется, это еще не поддерживается). Но подождите! здесь в своем блоге они говорят, что они реализовали "SVG для drawable" и скоро выпустят его. Ура!