Androidデバイス解像度を取得する新しい方法

2438 ワード

Androidの携帯電話の解像度は多種多様で、開発者として、作成したソフトウェアは1つまたはいくつかの携帯電話だけを兼ねるのではなく、できるだけ多くの携帯電話で満足できる現実的な効果を達成しなければならない.Androidは設計当初から、さまざまな解像度のデバイス上で動作可能なオペレーティングシステムとして設計されていました.アプリケーションにとって、システムプラットフォームは安定したプラットフォーム間の実行環境を提供し、プログラムを実行するプラットフォームに正確に表示する方法に必要な技術的な詳細の大部分は、システム自体が処理し、プログラムの介入を必要としない.しかし、効果は限られており、デバイスの解像度をプログラムに最適化する必要がある場合があります.
五子棋をする過程で、レイアウトをより互換性のあるものにするために、解像度に関する資料を探しましたが、ネット上で見つけられるのは基本的にDisplayMetricsを使って解像度を得ることです.自分のテストを経て、androidを使うことで解像度を得る方法もあることが分かった.viewバッグの中のDisplay類.
まず、DisplayMetricsに関する資料を紹介します.
DisplayMetricsはandroidです.utilパッケージのクラスで、表示サイズ、解像度、フォントなどの表示に関する一般的な情報を提供します.
DisplayMetricsメンバーを取得するには、まず次のようにオブジェクトを初期化します.
DisplayMetricsmetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics;

コンストラクション関数DisplayMetricsはパラメータを渡す必要はありません.getWindowManager()を呼び出すと、既存のActivityのHandleが取得されます.この場合、getDefaultDisplay()メソッドは取得したアスペクト次元をDisplayMetricsオブジェクトに格納します.取得したアスペクト次元はピクセル単位(Pixel)で、「ピクセル」は「相対ピクセル」ではなく「絶対ピクセル」を指します.実は現代コードは以下の通りです.
private TextView textView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
String string = "        :" + displayMetrics.widthPixels + "x" + displayMetrics.heightPixels;
textView = (TextView) findViewById(R.id.textView);
textView.setText(string);
}

次に私が発見したもう一つの方法を紹介します.それはDisplayクラスで、APIを検索することでandroidにあることがわかります.viewパッケージには、Providesinformation about the display size and densityと記述されています.使用方法は次のとおりです.
private TextView textView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Display display = getWindowManager().getDefaultDisplay();
String string = "         :" + display.getWidth() + "x"
+ display.getHeight();
textView = (TextView) findViewById(R.id.textView);
textView.setText(string);
}

2つの方法の実行結果は同じです.Displayオブジェクトは、getWidth()とgetHeight()を呼び出して画面解像度を取得するだけでなく、getMetrics()メソッドでこの画面サイズと解像度を記述するDisplayMetricsオブジェクトを取得することもできます. 
[align=left] DisplayMetrics displayMetrics= [b]new[/b] DisplayMetrics();[/align] display.getMetrics(displayMetrics);

また、getOrientation()は画面の方向を取得したり、getRefreshRate()は画面リフレッシュ率などを取得したりすることもできます.