取得可能な画面サイズと取得した値
以下に、取得可能な画面サイズと取得した値を図示します。
① ハードウェアサイズ
Android デバイスの画面全体のサイズです。最上部のステータスバーから最下部のナビゲーションバー全てを含む画面サイズです。② ディスプレイサイズ
ハードウェアサイズからナビゲーションバーを除いた画面サイズです。③ レイアウトサイズ
レイアウトのサイズを取得することで、ハードウェアサイズからステータスバー、アクションバー、ナビゲーションバーを除いたアプリのコンテンツを表示する画面サイズが分かります。画面サイズを取得するコード
画面サイズを取得して表示するためのソースコードを以下に記します。『①ハードウェアサイズ』と 『②ディスプレイサイズ』は onCreate() メソッド内で取得可能ですが、『③レイアウトサイズ』は onCreate() メソッド内で取得すると 0 で取得してしまうので onWindowFocusChanged() メソッド内で取得するようにします。
public class MainActivity extends Activity {
LinearLayout ll;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ll = new LinearLayout(this);
setContentView(ll);
tv = new TextView(this);
tv.setTextSize(18.0f);
ll.addView(tv);
Display d = getWindowManager().getDefaultDisplay();
Point p1 = new Point();
Point p2 = new Point();
// ①ハードウェアの画面サイズを取得
d.getRealSize(p1);
// ②ナビゲーションバーを除く画面サイズを取得
d.getSize(p2);
tv.setText("①ハードウェアの画面サイズ\n"
+ "width :" + p1.x + "\n"
+ "height :" + p1.y + "\n\n"
+ "②ナビゲーションバーを除く画面サイズ\n"
+ "width :" + p2.x + "\n"
+ "height :" + p2.y + "\n\n");
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// ③レイアウトサイズを取得(getWidth() と getHeight())
tv.setText(tv.getText()
+ "③画面上のレイアウトサイズ\n"
+ "width :" + ll.getWidth() + "\n"
+ "height :" + ll.getHeight());
}
}
0 件のコメント:
コメントを投稿