Я пытаюсь понять, какой макет использует какое устройство.Попытка определить, какой макет должен использовать устройство
Например, у меня есть разные макеты:
- макет
- макета sw600dp
- макета sw720dp
Nexus 7" (800x1280) использует макет-sw600dp
Samsung GTp3100 7 "(600x1.024) использует layout-sw600dp
Tab Samsung 10,1 (1280x800) использует компоновщикам sw720dp
Sony XPERIA S 4.3 (1280x720) использует макет
Может вы, ребята, объясните "с вашими словами" почему не XPERIA S с помощью sw600dp или sw720dp? SW! = Наименьшая ширина? Столь маленький из XPERIA S - 720. Он должен использовать sw720 или sw600, правильно? Или я ошибаюсь?
Я прочитал тонны документации, но не могу понять, почему это происходит.
Большое спасибо.
спасибо. Удалось найти это с помощью этого кода: 'float density = getResources(). GetDisplayMetrics(). Плотность; float dpHeight = outMetrics.heightПиксели/плотность; float dpWidth = outMetrics.widthPixels/density; ' Кстати, есть ли какая-либо формула для получения этого значения« 2.5 », то же самое я получаю с помощью' getResources(). GetDisplayMetrics(). Плотность; '? – Reinherd
@ SergiCastellsaguéMillán: вы можете использовать поля 'xdpi' и' ydpi' 'DisplayMetrics' для получения фактического' dpi' для каждого измерения. Вычисление физического размера экрана было бы просто повторной компоновкой формулы, которую я использовал для вычисления «dpi» в моем ответе (например, '720/2.5 = 288 dpi", который равен 'px/size = dpi'), поэтому' px/dpi = размер'. Из 'DisplayMetrics' вы будете использовать' widthPixels/xdpi', чтобы получить физическую ширину экрана. – Squonk