Это один из тех досадных случаев, когда все работает, но я не знаю почему.Основываясь на документации по API Android и на этом сайте, я ожидал, что мне потребуется выполнить преобразование плотности пикселей для параметров макета (показанных здесь в их исходном состоянии):
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.width = 60; // the following three should be pixels, right??
lp.height = 80;
lp.setMargins(1, 5, 1, 5);
Другими словами, я ожидал, что приведенное вышене работают хорошо при разных плотностях экрана, так как они указаны в пикселях.«Проблема» в том, что он отлично работает на всех симуляторах, которые я пробовал, начиная с QVGA и выше.Чтобы попытаться понять, почему, я использовал Hierarchy Viewer для проверки моего приложения и обнаружил, что ширина представления (из getWidth ()) всегда была 320, когда мое приложение было в фокусе.Вернитесь, скажем, к начальному экрану, и теперь HV сообщает, что ширина экрана равна 480.
Есть идеи, что происходит?