今回は画面の情報を取得するためのDisplayクラスについて説明します。
◆ ディスプレイの情報を取得する
Displayクラスは、画面の向き・高さ・幅の情報を取得します。
メソッド 取得する情報 getHeight() 高さ(縦方向のピクセル数) getWidth() 幅(横方向のピクセル数) getOrientation() 方向(0:縦、1:横)
以下のプログラムでは起動時にディスプレイの情報をデバッガにログ出力します。
Androidプロジェクトの設定
プロジェクト名: DisplayTest ビルドターゲット: Android 2.1-update1 アプリケーション名: DisplayTest パッケージ名: jp.co.triware.samples.DisplayTest アクティビティーの作成: DisplayTest 最小SDKバージョン: 7
DisplayTest.java
package jp.co.triware.samples.DisplayTest; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Display; public class DisplayTest extends Activity { private final String TAG = this.getClass().getSimpleName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); printDisplayInfo(); } private void printDisplayInfo() { Display display = getWindowManager().getDefaultDisplay(); Log.i(TAG, "getOrientation: " + display.getOrientation()); Log.i(TAG, "getHeight: " + display.getHeight()); Log.i(TAG, "getWidth: " + display.getWidth()); } }
実行結果
実行結果は次のようになります。
縦置き(縦:480×横:320)の場合 getOrientation() 0 getHeight() 480 getWidth() 320
エミュレータを使用している場合、CTRL+F11またはCTRL+F12で縦横を切り替えることができます。
横置き(縦:320×横:480)の場合 getOrientation() 1 getHeight() 320 getWidth() 480
エミュレータのHVGA画面では、getOrientation()の戻り値が0の場合は縦置き(縦長)、1の場合は横置き(横長)となっていますが、これが「縦置き=縦長」「横置き=横長」とは限りません。端末によっては、基本となる画面、例えばホーム画面が横長固定のものがあります。この場合は横長=0、縦長=1となっていると思います。端末の仕様に依存しますから、動的に画面レイアウトを作る場合などは、画面の向きではなく、画面の高さ・横幅によって処理しなければなりません。
0 件のコメント:
コメントを投稿