Мельчайший ширина макеты. ошибка в Nexus 7?
При использовании квалификаторов layout-swdp я получаю результаты, как показано в приложении. Обозначение sw должно означать, что наименьшее измерение должно соответствовать или быть больше, чем квалификатор. Это, похоже, не работает с Nexus 7 (работа 4.2.1). Я запутался в том, какие наименьшие определители ширины делают или неправильно сообщают N7?
Чтобы воспроизвести мой тестовый пример, у меня есть много папок layout-swdp. Каждый из них имеет 2 текстовых поля. Первый просто укажет, куда его вставить. Следующий код:
private CharSequence collectScreenStats() {
StringBuilder str = new StringBuilder();
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
int dpWidth = (int)(width / metrics.density);
int dpHeight = (int)(height / metrics.density);
str.append(Build.MANUFACTURER);
str.append(" ");
str.append(Build.MODEL);
str.append("\n");
str.append("Pixels: ");
str.append(width);
str.append(" x " );
str.append(height);
str.append("\nDp (px / density): ");
str.append(dpWidth);
str.append("dp x " );
str.append(dpHeight);
str.append("dp" );
str.append("\nsmallest w: " + Math.min(dpWidth, dpHeight));
str.append("\ndensity: ");
str.append(metrics.density);
str.append("\ndensityDpi: ");
str.append(metrics.densityDpi);
return str;
}
Ответы
Ответ 1
Хорошо, похоже, это ошибка в ICS, где он не точно сообщает количество пикселей всего экрана, поскольку он учитывает хром.
Android DisplayMetrics возвращает неправильный размер экрана в пикселях на ICS
Итак, мои приведенные выше номера дисплея отключены, так как связь 7 составляет 1280 x 800, а не 1280 x 736. Используя правильные цифры, все работает.