私はHTCフライヤーをエミュレートしようとしており、そのために、私はエミュレータが「大」スクリーンサイズとして自己報告する必要があります。私は解像度と正しいdpiを指定しましたが、 "xlarge"と報告します。アンドロイドのドキュメント( http://developer.android.com/guide/practices/screens_support .html#range )は、 "xlarge"にする必要があるが、HTC Flyerデバイスでは "large"と指定しています。いくつかの番号を持つデバッグ出力をいくつか示します:
flyer device
DisplayMetrics{density=1.0, width=600, height=1024, scaledDensity=1.0, xdpi=169.99738, ydpi=169.33333}, densityDpi, 160, density, 1.0, screen size, large,
flyer emulator
DisplayMetrics{density=1.0, width=600, height=1024, scaledDensity=1.0, xdpi=160.0, ydpi=160.0}, densityDpi, 160, density, 1.0, screen size, xlarge,
「画面サイズ」に注意してください。それ以外はすべて同じですが、デバイスは "large"とエミュレータ "xlarge"を報告します。代わりに、エミュレータのレポートを「大」にする方法はありますか?
ここに私に出力を与えたJavaがあります:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenLayout = getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
String screenLayoutStr;
switch (screenLayout){
case Configuration.SCREENLAYOUT_SIZE_SMALL:
screenLayoutStr = "small";
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
screenLayoutStr = "normal";
break;
case Configuration.SCREENLAYOUT_SIZE_LARGE:
screenLayoutStr = "large";
break;
case 4:
screenLayoutStr = "xlarge";
break;
default:
screenLayoutStr = "unknown: " + screenLayout;
}
LogIt.d(this,metrics,"densityDpi",metrics.densityDpi,"density",metrics.density,"screen size",screenLayoutStr);