目的: 我想使用ImageView显示SVG图像文件.
尝试1:
我正在使用svg-android库来做到这一点.
我正在逐字逐句地跟进他们的教程.我只是将他们的代码粘贴到我的onCreate中,从onCreate中注释掉我的应用代码.
在此之前我有一个闪屏,但我怀疑这无论如何会干扰这一点.无论如何,我只会更改启动意图并发布更新.
我已将他们的jar添加到libs文件夹中并引用它.
结果1:
我正在测试三星Galaxy I93000(国际版)
我得到的只是一个白色的屏幕.
没有编译或运行时错误.
Logcat输出如下:
Run Code Online (Sandbox Code Playgroud)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 …
我知道android studio不支持SVG中的所有元素.
到目前为止,我知道:
<defs>
<stop>
<use>
<linearGradient>
Run Code Online (Sandbox Code Playgroud)
尚不支持.
这里是对svg元素的引用 https://developer.mozilla.org/en-US/docs/Web/SVG/Element
我有SVG文件编码为base64,我想用ImageView显示图像.这是我试过的:
// imageBase64 is string that represents the SVG image encoded as base64
byte[] decodedString = Base64.decode(imageBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Run Code Online (Sandbox Code Playgroud)
但decodeByte总是返回null.
PS:
最近我的应用程序收到了很多关于"它在冰淇淋三明治上用CM9"的评论.我无法在运行Android 4.0的模拟器上重现错误,并且由于Android市场的工作方式,我无法联系这些人询问细节.
幸运的是,一个崩溃错误报告引起了我的注意.我正在使用Canvas.clipPath绘制圆角......看起来有些手机UnsupportedOperationException在尝试使用该功能时会抛出.快速浏览一下Google就会发现在Android 4.0中使用硬件加速似乎是一个问题 - 所以这是收到评论的潜在原因.
问题是 - 发生了什么?以前的Android版本中的应用程序硬件加速了吗?为什么不支持这种常用功能?解决方法是什么?
Canvas.clipPath的示例用法可以在我的其他帖子中找到.检查接受的答案:ListView中的Android圆角
提前致谢
compatibility android canvas exception hardware-acceleration
我想画Picture上一个Canvas由
mCanvas.drawpicture(mPicture, mRect)
Run Code Online (Sandbox Code Playgroud)
使用目标API 7 <uses-sdk android:minSdkVersion="7"/>,它在API <14的设备中完美运行,但在使用Ice Cream Sandwich的设备中,它不起作用.显然这是因为硬件加速不支持canvas.drawPicture:不支持的绘图操作
我试图通过禁用Manifest中的硬件加速来解决这个问题:
<application android:hardwareAccelerated="false" ...>
Run Code Online (Sandbox Code Playgroud)
但仍然行不通.
android canvas hardware-acceleration android-4.0-ice-cream-sandwich
android ×4
svg ×3
canvas ×2
android-4.0-ice-cream-sandwich ×1
base64 ×1
exception ×1
imageview ×1
java ×1
svg-android ×1