我使用了一些我使用Android Studio的Vector Asset Studio通过本地SVG文件导入的图像。
图像完全加载在我的nexus 6p上,然而,在Sony Xperia Z上,它非常像素化,在三星Galaxy s2上,它更糟糕。
根据我的理解,由于文件是xml(矢量)而不是png文件,它应该能够自动调整大小,或者我错过了什么。
编辑:只是一些额外的信息:该文件最初是PNG,但是,我已经使用名为Vector Magic的程序完全转换为矢量文件。我可以在插画家上打开它并编辑每一行等。
解决方法通过VectorDrawableCompat.create(..)方法从VectorDrawable更改为VectorDrawableCompat。谢谢@pskink。
答案 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="..."
属性。当我删除可绘制对象中所有出现的该属性时,下次编译该应用程序时一切正常。