我在API 21+上遇到图像显示问题,但在较低的设备和API 22 +上一切正常。我正在使用Gradle Plugin 1.5,所以我的build.gradle
看起来像这样:
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
以XML格式显示图片:
<ImageView
android:id="@+id/landing_img_slide"
android:layout_width="225dp"
android:layout_height="225dp"
android:layout_centerHorizontal="true"
android:scaleType="centerCrop" />
Java代码:
ImageView iconView = (ImageView) itemView.findViewById(R.id.landing_img_slide);
iconView.setImageResource(R.drawable.laptopscreen);
屏幕截图下方显示ImageView
,VectorDrawable可与Pre-lollipop和Marshmallow配合使用,但在Android 5.0.1中显示模糊图像
Android 5.0.1
Android 6.0.1
答案 0 :(得分:3)
这与ImageView中的scaleType有关,当涉及到VectorDrawables时,它会在这些不同的API级别上执行不一致的事情。
有一个scaleType在缩放时似乎始终给出清晰的图像:android:scaleType="fitXY"
但是在使用它时你必须确保ImageView具有与Vector Drawable相同的纵横比(例如,如果你使用fitXY)使用方形VectorDrawable和矩形ImageView,它将拉伸图像。
或者,您可以通过设置
来更改VectorDrawable本身的大小<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="225dp"
android:height="225dp"
.../>
通过这样做,ImageView中不需要缩放。