VectorDrawable图像变为像素化

时间:2016-05-17 08:34:39

标签: android xml svg vector android-drawable

我使用了一些我使用Android Studio的Vector Asset Studio通过本地SVG文件导入的图像。

图像完全加载在我的nexus 6p上,然而,在Sony Xperia Z上,它非常像素化,在三星Galaxy s2上,它更糟糕。

根据我的理解,由于文件是xml(矢量)而不是png文件,它应该能够自动调整大小,或者我错过了什么。

我附上了3个案例的图片。 enter image description here

编辑:只是一些额外的信息:该文件最初是PNG,但是,我已经使用名为Vector Magic的程序完全转换为矢量文件。我可以在插画家上打开它并编辑每一行等。

解决方法通过VectorDrawableCompat.create(..)方法从VectorDrawable更改为VectorDrawableCompat。谢谢@pskink。

3 个答案:

答案 0 :(得分:6)

向图片添加android:scaleType="fitXY"为我解决了这个问题。

答案 1 :(得分:2)

Android在API级别21和更高级别上支持SVG。对于API级别19、20,它会回退到png生成。我们在应用程序中放置的SVG在这几代产品中的尺寸都较小,因此您似乎在屏幕上看到像素化图像。就我而言,增加

<vector android:height="70dp" android:width="70dp"
矢量XML的

生成了更好的png,并且在较旧的设备上开始看起来更好

答案 2 :(得分:0)

对我来说,导致矢量转换为png的原因是我的矢量可绘制对象中的 android:fillType="..." 属性。当我删除可绘制对象中所有出现的该属性时,下次编译该应用程序时一切正常。