2017-08-29 10 views
0

私は、レイアウトのための完璧な背景イメージを設定する多くの可能な方法を試みましたが、完璧な結果を得たことはありません。あなたに私の問題を説明させてください。私はサイズが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()方法:背景画像などの画像をロードした後

enter image description here

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

画像が完全に画面にフィットされていません。 背景画像を設定する最適なソリューションは何ですか?

+0

.fitCenter()または.centerCrop() –

+0

と同じ結果が使用できます。 – XoXo

答えて

1

異なる画面サイズを計算するというこの手間を経る必要はありません。異なるサイズの画像リソースを使用する必要があり、アンドロイドは画面サイズごとにそれを処理します。 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

おそらく、これはあなたのニーズに合わせて異なるサイズの画像を使用しないという言い訳ではありませんが、これはニーズに合わせてすべてのサイズを含めるGoogle推奨のソリューションです。加えて、アクセシビリティコードの計算によって引き起こされるAPKサイズを縮小する他の方法もあります。 –

+0

あなたはこれらの解像度が少し古いとは思わないでしょうか。 LG G3の解像度を見ると、私は意味します。その '1440x2960'。それに対処する方法? – XoXo

関連する問題