Androidエミュレーターを使用して、複数の画面サイズのxmlレイアウトをテストしています。Motorola Razr (解像度: 540x960)、サイズ (インチ) = 4.3、hdpi の AVD で新しいデバイスを作成しました。
奇妙なことに、metrics.heightは 960 ではなく 888 になりましたが、metrics.widthは正しい (=540) です。
DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.i("widthPx: ", ""+metrics.widthPixels); // comes out 540
Log.i("heightPx", ""+metrics.heightPixels); // comes out 888 ?? How come ??
さて、私の問題は、レイアウトのテスト中にこの仮想デバイスにどのように依存するかです。また、幅と高さがプログラムで正確に 540x960 になる解像度 540x1032 の新しい AVD を作成しました (目的の高さを得るために意図的に 88px から 960px (==1032) を追加しました)。代わりにこのデバイスに依存する必要がありますか? よくわかりません。
また、AVD のすべての詳細が正しく入力されていることを再確認しました。誰かが同じような状況に直面したことがある場合は助けてください。
私には、AVD のある種のバグのように思えます。