Как я могу получить эмулятор Android, чтобы сообщить конкретный размер экрана - PullRequest
4 голосов
/ 27 октября 2011

Я пытаюсь эмулировать HTC Flyer, и для этого мне нужен эмулятор для самоотчета в виде «большого» размера экрана.Я указал разрешение и правильный dpi, но он сообщает как «xlarge».В документации Android (http://developer.android.com/guide/practices/screens_support.html#range) указано, что оно должно быть «xlarge», но устройство HTC Flyer говорит, что оно «большое».Вот некоторый отладочный вывод с некоторыми числами:

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,

обратите внимание на «размер экрана».В остальном все ровно, но устройство выдает сообщение «большой», а эмулятор «большой».Есть ли способ сделать отчет эмулятора "большим" вместо этого?

Вот 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);
...