【发布时间】:2016-01-11 23:06:50
【问题描述】:
问题
我的 XML 中有一个这样的 ImageView:
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_person_add"
android:alpha="0.87" />
ic_person_add 是普通的Material design Vectoricon。
在我的 Nexus 5 (Android 6) 上,图标缩放非常漂亮而且非常清晰:
然而,在 Note 2 (Android 4.4) 上,图标变得非常像素化和丑陋:
如何在每台设备上获得清晰的 ImageView(以 Vector 作为 src)?最好只使用 xml 解决方案。
我已经找到了:
- 添加
android:adjustViewBounds="true"-> 什么也没做 - ImageView images seem pixelated and low quality -> 不适用于矢量
- 设置
BitmapFactory.inscaled=false-> 仅适用于 xml,我不知道将其放在自定义 ImageView 类中的哪个位置。
【问题讨论】:
-
也许你应该使用romannurik.github.io/AndroidAssetStudio tp 生成需要的尺寸
-
在 ImageView 中为 android:layout_width 和 android:layout_height 使用 "wrap_content"。这将保留原始图标大小并且不会像素化
-
@piotrek1543 问题是,我不应该有不同的尺寸,因为图像是矢量图形。
-
@Fareya 在 Nexus 5 上,它也适用于 100dp 尺寸并且不会像素化。此外,由于它是矢量图形,它应该可以正确缩放到任何大小。
-
检查文件夹中的图标 \path-to-your-android-sdk-folder\platforms\android-xx\data\res 并非所有图标都是 xml 形状。 png 图标在放大时会有质量损失。
标签: android xml imageview drawable