目的:
我想显示一个svg图像文件,最好使用imageview。
尝试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:
尝试其他库/方法来执行此操作-tutorial。将返回结果。
更新3:
你知道,我已经看了ImageView with SVG Support。这里的答案并不能提供真正的本地解决方案。一种解决方法是创建静态html页面,每个页面一个,引用svg js库。这看起来根本无法维护。当人们看到遗留代码时,我会成为他们诅咒的那个人。
你可能已经猜到了,上面的试验结果不太好。

最佳答案

您可能已经找到了解决方案,但供以后参考:
我正在测试三星Galaxy i93000(国际版)
我只得到一个白色的屏幕。
没有编译或运行时错误。
您可能需要禁用正在使用的imageview的硬件加速:

imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我在使用svg android的fork时遇到了同样的问题,这完全是由于硬件加速。

07-28 01:36
查看更多