У меня есть 2 планшета:
1 Samsung Android 3.0
DisplayMetrics {density=1.0, width=600, height=976,
scaledDensity=1.0, xdpi=161.55031, ydpi=155.51021}
1 Недорогое устройство, Android 2.3.3
DisplayMetrics {density=1.0, width=480, height=800,
scaledDensity=1.0, xdpi=160, ydpi=160.42105}
Если я использую разные макеты для каждого размера экрана, оба устройства говорят, что они большие-длинные и mdpi, поэтому я не могу различить их, используя имена папок макета... Проблема в следующем:
Я использую TextView с textSize="20dp"
В первом устройстве ширина текста составляет половину экрана, во втором устройстве больше (80% ширины экрана). Почему? Я ожидаю, что оба устройства будут отображать текст одинаково, если я использую dp (а не px). Я пробовал также с sp, но ничего не меняется...
(Я использовал TextView в качестве примера, у меня такая же проблема со всеми элементами в макете: размеры кнопок, ...)
Я бы попытался использовать имена папок макета, такие как «layout-w600dp» или что-то еще, представленное в Android 3.2, но это не так.
Я знаю, что могу изменять размеры элементов с помощью кода в onLayout(), но я не хочу этого делать...
Есть предложения?
Обновление
Я решил свои проблемы с макетами с использованием тем: Активируйте определенные дименсы.xml во время выполнения