目的: 我想最好使用 ImageView 来显示 SVG 图像文件。
尝试1:
我正在使用svg-android库来做到这一点。
我按照他们的教程逐字逐句。我只是将他们的代码复制粘贴到我的 onCreate 中,从 onCreate 中注释掉我的应用程序代码。
在此之前我有一个启动画面,但我怀疑无论如何都会干扰这个。在任何情况下,我都会更改启动意图并发布更新。
我已将他们的 jar 添加到 libs 文件夹并引用它。
结果1:
我正在测试三星 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 with SVG Support。将返回结果。
更新 3:
如您所知,我已经了解了Android 上的 SVG 支持。那里的答案并没有真正提供本机解决方案。一种解决方法是创建静态 html 页面,每个 svg 一个,引用 SVG js 库。这似乎根本无法维护。我会成为人们在查看遗留代码时诅咒的人。
正如您可能已经猜到的那样,上述试验的效果并不好。