2012-01-13 11 views
1

アンドロイドの画面サイズを取得するのに問題があります。私は自分の次元に含まれるステータスバーのサイズは欲しくない。私が開発しているアプリは、恒久的に風景モードにすることです。私はアンドロイドハニカムエミュレータでテストしています。 How can I get android Honeycomb system's screen width and height?のコードを使用して寸法を取得すると、1280x800が得られます。リンクされた質問の人がステータスバーのサイズを減算しているのに対し、私の場合はそのように動作しないのはなぜか不思議でした。また、ステータスバーのサイズが実際に減算されるようにするにはどうすればよいですか?追加の詳細が必要な場合は、定期的にチェックして提供します。ありがとう!Landscape Window Dimension Android

答えて

1

大丈夫です!私はついにそれを理解した。私はいくつかの異なるソースからコードをまとめました。なぜ私は物事がどうやって動くのか正確にはわかりません。ここに関連コードがあります。

Rect rect = new Rect(); 
Window win = getWindow(); 
win.getDecorView().getWindowVisibleDisplayFrame(rect); 
screenWidth = Math.abs(rect.left-rect.right); 
screenHeight = Math.abs(rect.top-rect.bottom); 

ただし注意が1つあります。このコードは、がonCreate()メソッドで動作しません。代わりに、それを配置してください

public void onWindowFocusChanged (boolean hasFocus) 

これは、ウィンドウの寸法を取得すると問題を解決する必要があります!

編集:このソリューションは、ポートレートモードでも機能するはずです。私はそれをテストしていない。