すべての中型および大型のアンドロイド画面をサポートする背景画像のサイズ
-
30-09-2019 - |
質問
私はアプリを書いています、そして私のアクティビティの1つに背景を持っていることを望んでいます、
複数の解像度などをサポートすることについてAndroidドキュメントを読んでいますが、私のデザイナーは壁紙のサイズを尋ねています。すべての画面サイズで低い、通常の高DPIには多くの画像が必要ありません。
これらすべての画面でグラフィックの背景を埋める素敵な画面を取得するための最もスペース効率の良い方法は何ですか?
Androidは素晴らしいですが、すべてにすべてのサイズの画像が必要なので、私は巨大なアプリになりたくありません。
解決
1つのアプローチは、密度を設計し、 アイコンデザインガイドライン アイコンの場合、および「で指定されている寸法」画面の範囲「のエリア 複数の画面をサポートします 背景画像用のガイド。
背景画像については、ステータスバーの寸法を考慮してください。
リソースを適切な描画可能なMDPI、描画可能なHDPI、描画可能なLDPIフォルダーに入れることができ、それらは適切に使用されます。
他のヒント
高解像度のランドスケープの背景しか持っておらず、ディスプレイに「ストレッチ」戦略を使用するのはどうですか?
mBackgroundGraphic = BitmapFactory.decodeResource(getResources(), R.drawable.background);
mBackgroundGraphic = getResizedBitmap(mBackgroundGraphic);
public Bitmap getResizedBitmap(Bitmap bm) {
int width = bm.getWidth();
int height = bm.getHeight();
int displayWidth = mDisplay.getWidth();
int displayHeight = mDisplay.getHeight();
float scaleWidth = ((float) displayWidth) / width;
float scaleHeight = ((float) displayHeight) / height;
// Create a matrix for the manipulation
Matrix matrix = new Matrix();
// Resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// Return the new stretched Bitmap
return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
}
所属していません StackOverflow