2017-08-29 114 views
0

我已經嘗試了許多可能的方式來爲佈局設置完美的背景圖像,但從來沒有得到完美的結果。讓我來形容你的問題。我有一個尺寸爲2880 x 5120像素的圖像。我已將圖像保存在xxxhdpi文件夾中,然後使用Glide庫作爲背景圖像加載圖像。我通過以編程方式計算屏幕大小來調整圖像大小。 這裏是我的下面的代碼加載圖像作爲背景圖像。適當的方式來設置佈局的背景圖像android

private int[] screenSize() { 
     Display display = getWindowManager().getDefaultDisplay(); 
     Point size = new Point(); 
     display.getSize(size); 
     return new int[]{size.x, size.y}; 
    } 

這是實際的背景圖像:

enter image description here

圖像加載作爲背景圖像後

Glide.with(LoginActivity.this) 
        .load(R.drawable.login_background) 
        .override(screenSize[0]*2,screenSize[1]) 
        .animate(animationObject) 
        .diskCacheStrategy(DiskCacheStrategy.RESULT) 
        .into(backgroundImage); 

screenSize()方法。我得到了下面的結果。

enter image description here

的圖像沒有被完全裝配屏幕。 什麼是設置背景圖像的最佳最佳解決方案?

+0

使用可以使用.fitCenter()或.centerCrop() –

+0

與上面相同的結果。沒有工作 – XoXo

回答

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 
+0

不會增加apk大小? – XoXo

+1

也許,但這不是沒有使用不同大小的圖像來適應您的需求的藉口,這是谷歌推薦的解決方案,以包括所有尺寸以適應需要。另外還有其他方法可以減少由代碼計算引起的APK大小.. –

+0

你不覺得這些解決方案有點舊嗎?我的意思是,如果你看看LG G3的決議。它的'1440x2960'。如何處理? – XoXo