我尝试了许多可能的方法来为布局设置完美的背景图像,但从未获得完美的结果。让我来形容你我的问题。我有一张大小为2880 x 5120
像素的图片。我将图像保存在xxxhdpi
文件夹中,然后使用Glide
库作为背景图像加载图像。我通过以编程方式计算屏幕大小来调整图像大小。
以下是我将以下代码加载为背景图像。
Glide.with(LoginActivity.this)
.load(R.drawable.login_background)
.override(screenSize[0]*2,screenSize[1])
.animate(animationObject)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.into(backgroundImage);
screenSize()
方法:
private int[] screenSize() {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return new int[]{size.x, size.y};
}
这是实际的背景图片:
将图像加载为背景图像后。我得到了以下结果。
图像不完全适合屏幕。 设置背景图片的最佳解决方案是什么?
答案 0 :(得分:1)
您无需经历计算不同屏幕尺寸的麻烦。您应该使用不同大小的图像资源,android将根据屏幕大小处理它。您可以使用this post来阅读更多信息,但我总结了您可以在项目中使用的尺寸作为背景图片。
它具有您需要用于不同屏幕的所有尺寸以及横向模式尺寸。
MDPI:
Portrait: 320x480px
Landscape: 480x320px
HDPI:
Portrait: 480x800px
Landscape: 800x480px
XHDPI:
Portrait: 720px1280px
Landscape: 1280x720px
XXHDPI:
Portrait: 960px1600px
Landscape: 1600x960px
XXXHDPI:
Portrait: 1280px1920px
Landscape: 1920x1280px