Android Layout для экрана 720x720 BlackBerry

Мой BlackBerry Q5 может запускать приложения для Android, и я хотел бы оптимизировать одно из моих существующих приложений для своего экрана. Разрешение составляет 720x720, но среда выполнения также вставляет полосу в нижней части экрана, поэтому используемое разрешение для приложения Android составляет 720x620 пикселей, поэтому я думаю, что именно это телефон сообщает приложению Android в качестве разрешения.

Есть ли способ сделать макет, который будет применяться только к экранам 720x620px? Документация для поддержки нескольких размеров экрана говорит, что есть w<N>dp а также h<N>dp классификаторы, но они используют масштабированный dp единиц, а также означает минимальную доступную ширину в дп единиц, так что они не будут здесь полезны.

2 ответа

Мне тоже нужно было решить твою проблему, это мое решение.

Плотность экрана Q5 и Q10 составляет xhdpi (масштабный коэффициент 2,0), поэтому максимальный размер экрана составляет 720x720px / 2.0 = 360x360dpi.

Цитирование из документации, Таблица 2, строка "Доступная высота":

Определяет минимальную доступную высоту экрана в единицах "dp", при которых должен использоваться ресурс
[...]
Когда ваше приложение предоставляет несколько каталогов ресурсов с различными значениями для этой конфигурации, система использует тот, который ближе всего (без превышения) к текущей высоте экрана устройства.
[...]
Добавлено в API уровня 13.

Исходя из этого, для Android с API>=13 (включая Blackberrys) вы можете поместить свой собственный макет Blackberry в папку "layout-h240dp", а все остальные в "layout-h361dp"

Высота Blackberry больше 240dp и меньше 361dp, поэтому она будет использовать макеты в папке h240dp.

Заметки:
- Если вы не добавите папку 361dp, папка 240dp будет использоваться для каждого устройства, высота которого превышает 240dp.
- Я выбираю 240dp, потому что это обычное минимальное измерение для современных устройств.
- 309dp тоже должно работать, так как оно меньше 310dp (минимальная высота экрана ББ с полосами)
- Для Android с API<13 вы должны поместить макет по умолчанию в общую папку "layout", потому что предыдущие папки "h*dp" игнорируются. если макет по умолчанию отсутствует, приложение должно аварийно завершить работу.

Я не хочу превращать это в полномасштабный ответ, но мне нужно дополнительное место.

Если вы хотите использовать их специально для устройств Q5 или Q10, поместите их в drawable-square папка. Это изменилось с drawable-small-square из-за износа.

Если вы планируете развертывание на устройствах с ОС OS 10.2.1+ и не хотите, чтобы эта задняя панель отображалась по умолчанию, вы можете добавить небольшой файл конфигурации в свое приложение, чтобы система знала, что он не будет отображаться.

Для получения дополнительной информации об этом, посмотрите на мой блог:

Разработчики Android: устраните Back-Bar в своем 10.2.1. Приложение

Другие вопросы по тегам