1

visibleAndroid アプリに、gone小さい画面とvisible大きいinvisibleサイズを切り替えたいビューがあります。初期設定 (gone小さな画面用、大きな画面用) は、とinvisibleの下に 2 つの個別の XML レイアウト ファイルを用意することによって行われますが、可視性の設定を動的に交換する必要がある場合、どちらを選択するかを Java コード内から判断するにはどうすればよいですか?画面サイズ?layoutlayout-sw600dp-land

編集:より具体的には、Android がlayout-sw600dp-land. ディレクトリのどこかに値を記録することさえ考えていましたvalues-sw600dp-landが、それをどのファイルに入れ、どのようにアクセスするのかわかりません。

4

1 に答える 1

4

以下を使用して、画面のピクセル単位のサイズを取得できます。

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels; 
int height = dm.heightPixels; 

ただし、画面のサイズがピクセルまたはインチのどちらを意味するかについて、あなたの質問はあいまいでした。画面の「サイズ」のより有用な計算のために、値をピクセルからインチに変換するために、dm.densityDpi 値を利用する必要がある場合があります。

編集のためのANSER:

考えられる解決策は 2 つあります。1つはこのスレッドで参照されていますが、非常に単純で、上記で言及しました.

Android アプリが使用している XML レイアウトをプログラムで判断する方法は?

2番目は解決策ではなく、説明です。layout-sw600dp-land ファイルは、この layout-xlarge-land のような 3.2 より前の古い命名規則を置き換えます。これは基本的に、「横長」モードで「特大」画面を表示します。そのため、幅 > 高さの特大画面サイズを見つけることで、プログラムでこれを検出できます。以下は、古い規則と新しい「sw600dp」を比較するための良い参考資料です = 最小幅は 600 dp 規則です。

http://developer.android.com/training/multiscreen/screensizes.html

于 2013-05-01T15:57:58.390 に答える