我正在开发一个应用程序,它可以显示其他人的图像数据库。他们拥有的图像都是矢量图形,可以转换为任何格式,但是保持矢量格式是很好的,因为用户可能想要近距离放大。
问题是,在Android中有没有内置的方式来显示矢量图形?格式无关紧要-我们可以进行转换。我们正在考虑的当前格式是PDF,但考虑到没有原生PDF支持,我必须做一些非常复杂的事情才能让它工作(例如,通过NDK将poppler集成到我的应用程序中)。另一种选择是将矢量图形转换为更简单的格式(JPG,GIF),但我宁愿避免这种情况。
发布于 2011-06-01 22:06:34
查看svg-android -它是一个相对较新的库,它只支持SVG Basic,但它是用于绘制Androidify的库。主页上有一些关于如何从SVG中获取可绘制图形的示例,这似乎就是您正在寻找的。
发布于 2014-11-05 11:22:35
我知道这个问题很老了,但我遇到了同样的要求,我很高兴地了解到Android 5.0现在支持矢量绘图。您可以使用API和路径数据来创建向量绘图,它在<vector> -21上的工作方式非常出色。下面是一个生成心形矢量图像的示例。
<!-- res/drawable/heart.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="256dp"
android:width="256dp"
android:viewportWidth="32"
android:viewportHeight="32">
<!-- draw a path -->
<path android:fillColor="#8fff"
android:pathData="M20.5,9.5
c-1.955,0,-3.83,1.268,-4.5,3
c-0.67,-1.732,-2.547,-3,-4.5,-3
C8.957,9.5,7,11.432,7,14
c0,3.53,3.793,6.257,9,11.5
c5.207,-5.242,9,-7.97,9,-11.5
C25,11.432,23.043,9.5,20.5,9.5z" />
</vector>到目前为止,我面临的唯一问题是,它没有包含在支持库中,因此您不能在较低的API中使用它们。奇妙的是,你现在甚至可以对矢量绘图进行动画处理了。下面是一个例子。
<!-- res/drawable/vectordrawable.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600">
<group
android:name="rotationGroup"
android:pivotX="300.0"
android:pivotY="300.0"
android:rotation="45.0" >
<path
android:name="v"
android:fillColor="#000000"
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
</vector>阅读有关矢量可绘制动画here的更多信息。
发布于 2010-10-25 22:48:43
TinyLive SVG为Android提供了一个SVG查看器。我没有试过,所以我不知道它是好是坏。
Reading this bug request似乎可以在浏览器中启用SVG,因此在姜饼中可能也启用了WebView。但由于这可能是未来版本中的一个功能,所以现在可能对您没有太大帮助。
https://stackoverflow.com/questions/4015680
复制相似问题