Android デバイスがタブレットの場合は、向きを有効にする (縦と横) 必要がありますが、デバイスが電話の場合は、向きを縦モードのみにする必要があります。これを行う方法を教えてください。
ありがとう、ニシン
Android デバイスがタブレットの場合は、向きを有効にする (縦と横) 必要がありますが、デバイスが電話の場合は、向きを縦モードのみにする必要があります。これを行う方法を教えてください。
ありがとう、ニシン
2 つの方法があります。
a) 電話とタブレット用に別々のレイアウトとドローアブルのセットを作成し、必要な向きに合わせて設計します。
b) 実行時にオペレーティング デバイスを確認し、向きを設定します。デバイスをチェックするには、次のパラメータをチェックして、向きをプログラムで設定します。
(1) Build.VERSION.SDK_INT
(2) Configuration.SCREENLAYOUT_SIZE_MASK
これを試してみてください。私にとっては完璧に機能します.....
if ( isXLargeScreen() )
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
そして、タブレットと電話を決定するこの関数は、上記の IF で呼び出されます.....
public static boolean isXLargeScreen(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
デバイス画面の幅と高さを取得します。解像度がタブレットの解像度より低い場合は、アプリの向きを縦に設定できます。
アクティビティのピクセル単位の表示サイズが必要な場合は、getSize を使用できます。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
アクティビティでない場合は、WINDOW_SERVICE を介してデフォルトのディスプレイを取得できます。
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
if(width<= (resolution width of tablet) && height<=(resolution height of tablet))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );
}
に基づいてマニフェストでコマンドを与えないでください
Android:画面の向き
私自身は初心者ですが、特定の API レベルまたは dpi をターゲットにすることでこれを行うことは可能でしょうか? 対象とするさまざまなデバイスに代替リソースを提供できます。
例えば:
res/layout/main.xml
res/layout-xhdpi/main.xml
res/layout-v11/main.xml
そのための適切なドキュメントがここにあります。
このクラスを使用して、システム プロパティから抽出された、現在のビルドに関するデバイス情報を取得できます。
向きのプロパティを設定するには、次の属性を使用します...
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"sensor" | "fullSensor" | "nosensor"]