Устройства Android HDPI с нестандартной компоновкой - PullRequest
2 голосов
/ 25 октября 2011

Я сталкиваюсь со все большим количеством android-устройств с нерегулярным расположением, особенно в разделе HDPI.

Проблема в том, что мои более сложные макеты не масштабируются правильно, хотя я использую только значения DIP в моих макетах xml.Анимации особенно проблематичны, так как я использую значения с плавающей точкой в ​​коде * 1003. *

Например, у меня будет телефон с разрешением 240 точек на дюйм с 3,7-дюймовым экраном и стандартным разрешением Android.Я могу сделать HDPI и большие макеты для этого устройства и сделать так, чтобы они идеально подходили под любой дизайн и эстетику.

Тогда у меня телефон с диагональю 4,2 дюйма, но его вертикальное разрешение по-прежнему меньше, чем у XHDPI или XLARGE.Если вы спросите устройство, каково его DPI, оно также выдаст 240 dpi.К сожалению, из-за разного соотношения сторон, разного размера экрана и разного разрешения мои макеты неправильно масштабируются.Также нет способа создать отдельную папку с макетом, потому что устройство ДУМАЕТ, что это макет большого размера и hdpi, потому что просто сообщает об этом неправильно.(Оба EVO, несколько других «длинных» телефонов). Читая документацию для Android, кажется, что вы можете использовать layout-long-large и какую-то другую комбинацию, но сам телефон все еще думает, что это только большой макет.квалификатор long работает в устройствах, которые сообщают правильную информацию о себе.

Как люди справляются с этим с помощью платформы Android, не делая это в коде.Это было бы очень утомительным занятием для меня, и у меня есть вопросы о том, как динамически я могу это сделать, если аппаратное обеспечение сообщает всю информацию о себе неправильно.

Понимание ценится.

Ответы [ 3 ]

1 голос
/ 25 октября 2011

Какова ваша целевая структура?Я думаю, что устройство не будет сообщать о себе как xhdpi, если целевое значение API не равно 9 или выше.

0 голосов
/ 29 ноября 2011

Мое решение этой проблемы - все больше полагаться на позиционирование RelativeLayout.

0 голосов
/ 25 октября 2011

Один из способов решения этой проблемы - каждый раз, когда приложение запускается, оно отправляет свой идентификатор пользователя на сервер. Затем сервер определяет правильное изображение для использования и отправляет эту информацию клиенту, который использует его для отображения этого изображения. Это имело место на других мобильных платформах, и хотя Android решает эту проблему, у вас, похоже, с этим проблемы. Попробуйте это.

Также вы рассматривали возможность использования изображений с 9 путями?

...