すべての Android デバイス (タブレットと携帯電話) をサポートするゲームを作りたいです。コーディングで画面サイズを取得できます。3 0r 4 のレイアウトを小、中、大にする必要がありますか? 小、中、大、特大のサイズは?すべてのデバイスのレイアウトを設定する他の方法はありますか?
2 に答える
必要なものの Android ドキュメントは次のとおりです。
http://developer.android.com/guide/topics/resources/providing-resources.html
画面サイズ、画面ピクセル密度、またはその他の要素を使用して、レイアウトを分割する方法を決定できます。
さまざまなレイアウトを指定できます (試してみる必要があります)。異なるサイズが同じレイアウトを使用する場合があります。デバイスが最終的にどのレイアウトを使用するかは、一連のルールによって異なります。
たとえば、画面サイズを使用する場合は、res フォルダーの下に、layout-small、layout-medium、layout-large、layout-xlarge という名前のフォルダーを作成します。これは、layout がレイアウト リソースの既定のフォルダーであり、その後に - を追加するためです。この場合、小、中、大、または特大です。
編集: 上記の Alex のリンクが探しているものかもしれません。私のリンクはそれを行う方法に関するものですが、アレックスのリンクはそれをうまく行う方法に関するものです。あなたが正確に何を求めているのかわかりませんでした。
(1) すべてのレイアウト サイズをサポートする 1 つの方法は、適切なサイズの画像を drawable-hdpi、drawable-mdpi、drawable-ldpi、および drawable-xhdpi に配置することです。特定の画面サイズのデバイスの画像は、Android ランタイム システムによって自動的に選択されます。このアプローチでは、サイズごとに異なるレイアウト ファイルを作成する必要はありません。
(2) 同じことを達成する 2 番目の方法は、デバイスのサイズ (密度) を動的に検出し、それに応じてレイアウトを設定することです。これは次のように実行できます。
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
switch(displayMetrics.densityDpi){
case DisplayMetrics.DENSITY_LOW:
// your layout for small-size devices.
break;
case DisplayMetrics.DENSITY_MEDIUM:
// your layout for medium-size devices.
break;
case DisplayMetrics.DENSITY_HIGH:
// your layout for big-size devices.
break;
}
このアプローチでは、サイズごとに異なるレイアウト ファイルを個別に作成する必要がある場合があります。