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. Приложение