Наименьшая ширина макетов. ошибка в 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
Итак, мои вышеприведенные номера дисплея отключены, так как Nexus 7 равен 1280 x 800, а не 1280 x 736. При использовании правильных чисел все работает.