- Русские Блоги
- Высота экрана Android, высота строки состояния, заголовок BAR очень подробно
- Высота строки состояния в Android
- 19 ответов
- текущий метод:
- (старый метод), чтобы получить высоту строки состояния на onCreate() метод вашей деятельности, используйте этот метод:
- Высота строки состояния в Android
- Текущий метод:
- (Старый метод), чтобы получить высоту строки onCreate() метода onCreate() вашей деятельности, используйте этот метод:
- Высота строки состояния в Android
- 19 ответов:
- текущий метод:
- (старый метод), чтобы получить высоту строки состояния на onCreate() метод вашей деятельности, используйте этот метод:
Русские Блоги
Высота экрана Android, высота строки состояния, заголовок BAR очень подробно
Во-первых, высота экрана, высота строки состояния, высочайшая заголовок, сильно отличающийся
Во-вторых, получите высоту всего экрана
В-третьих, получите высоту строки состояния
1. Получите ресурс размера системы
Строка состояния определяется в состоянии ресурса ресурса размера системы Android_bar_height, но это не является общедоступным, таким как обычно, обычно используя системные ресурсы как Android.r.dimen.status_bar_height. Но система предоставляет нам класс ресурса, вы можете получить файл ресурсов через этот класс, вы можете получить его. status_bar_height:
2. Отражение класса R
Все знают, что все ресурсы Android будет иметь уникальный идентификатор в качестве ссылки в классе R. Мы также можем получить пример домена класса R по отражению, затем найти status_bar_height:
В-третьих, измерение строки заголовка (Tellbar)
1. Если RequestWindowFeature (Window.feature_no_title) Высота заголовка в заголовке составляет 0
2. Получите высоту строки заголовка:
Примечание. Высота заголовка типа, полученная в методе OnCreat (), составляет 0
Источник
Высота строки состояния в Android
какова высота строки состояния в Android? Это всегда одно и то же?
из моих измерений кажется, что это 25dp, но я не уверен, что он имеет одинаковую высоту на всех платформах.
(Я хочу знать это, чтобы правильно реализовать переход fade от действия, которое не имеет строки состояния к тому, что делает)
19 ответов
на этот вопрос был дан ответ раньше. высота строки состояния?
обновление::
текущий метод:
ok, высота строки состояния зависит от размера экрана, например, в устройстве с размером экрана 240 X 320 высота строки состояния 20px, для устройства с размером экрана 320 X 480 высота строки состояния 25px, для устройства с 480 x 800 высота строки состояния должна быть 38px
поэтому я рекомендую использовать этот скрипт для получения строки состояния height
(старый метод), чтобы получить высоту строки состояния на onCreate() метод вашей деятельности, используйте этот метод:
из всех образцов кода, которые я использовал для получения высоты строки состояния, единственный, который действительно работает в onCreate метод Activity это:
по-видимому, фактическая высота строки состояния сохраняется как ресурс Android. Приведенный выше код можно добавить в ContextWrapper класса (например, Activity ).
на устройствах MDPI строка состояния 25px. Мы можем использовать это как основание и умножить его на плотность (округлено), чтобы получить высоту строки состояния на любом устройстве:
для справки: ldpi=.75, mdpi=1, hdpi=1.5, xhdpi=2
по данным рекомендации по дизайну Google; высота строки состояния 24 dp.
Если вы хотите получить высоту строки состояния в пикселях, вы можете использовать следующий метод:
который можно вызвать из activity с помощью:
Я объединил некоторые решения вместе:
это также работает с refrence ссылке
Hardcoding размер или использование отражения, чтобы получить значение status_bar_height считается плохой практикой. Крис Бейнс говорили об этом в Droidcon в Нью-Йорке. Рекомендуемый способ получения размера строки состояния — через OnApplyWindowInsetsListener:
Это было добавлено в API 20 и также передается через ViewAppCompat.
у меня такая же проблема с тем, чтобы получить высоту строки состояния в onCreate. Это работает для меня.
Да, когда я пробую его с видом, он предоставляет результат 25px. Вот весь код :
официальная высота 24dp , как официально заявлено Google на веб-страница дизайна Android.
высота по умолчанию используется для 25dp. С Android Marshmallow (API 23) высота была уменьшена до 24dp.
320х480 — 25 пикселей
480×800+ — 38px
он не работал для меня в методе onCreate для активности, но сделал, когда я положил его в onClickListener и дал мне измерение 25
чтобы решить эту проблему, я использовал комбинированный подход. Это необходимо, так как на планшетах системная панель уже вычитает пиксели при отображении.getHeight() называется. Поэтому я сначала проверяю, присутствует ли системная панель, а затем подходит Бен Клейтонс, который отлично работает на телефонах.
высота строки состояния 24dp в android 6.0
вы можете найти ответ в исходном коде: Framework\base\core\res\res\values\dimens.в XML
Переключить Разрешение В Полноэкранном Режиме:
Это решение может выглядеть как обходной путь, но на самом деле он учитывает, является ли ваше приложение полноэкранным (он же скрывает строку состояния) или нет:
таким образом, если ваше приложение в настоящее время полноэкранные, barheight будет равна 0.
лично я должен был использовать это, чтобы исправить абсолютные координаты TouchEvent для учета строки состояния так:
и это получит Абсолют y-координата, будет ли приложение полноэкранным или нет.
на Android 4.1 и выше, вы можете установить содержание вашего приложения, чтобы появиться за строку состояния, так что содержание не изменяет размер, как строка состояния скрывает и показывает. Для этого используйте SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN. Вам также может потребоваться использовать SYSTEM_UI_FLAG_LAYOUT_STABLE, чтобы помочь вашему приложению поддерживать стабильный макет.
при использовании этого подхода вы несете ответственность за обеспечение того, чтобы критические части пользовательского интерфейса вашего приложения (например, встроенные элементы управления в картах применение) не заканчивайте тем, что покрываетесь системными барами. Это может сделать ваше приложение непригодным. В большинстве случаев вы можете справиться с этим, добавив атрибут android:fitsSystemWindows в файл макета XML, установленный в true. Это регулирует заполнение родительской группы просмотра, чтобы оставить место для системных окон. Этого достаточно для большинства приложений.
в некоторых случаях, однако, вам может потребоваться изменить заполнение по умолчанию, чтобы получить желаемый макет для вашего приложения. Непосредственно манипулировать как ваше содержимое раскладывается относительно системных баров(которые занимают пространство, известное как «вставки содержимого» окна), переопределяет fitsystemwindows (вставки Rect). Метод fitSystemWindows () вызывается иерархией представлений при изменении вставок содержимого для окна, чтобы позволить окну соответствующим образом настроить его содержимое. Переопределяя этот метод, вы можете обрабатывать вставки (и, следовательно, макет вашего приложения), однако вы хотеть.
Если вы точно знаете размер высоты против
например, в устройстве с размером экрана 320 X 480 высота строки состояния составляет 25px, для устройства с 480 x 800 высота строки состояния должна быть 38px
тогда вы можете просто получить ширину вашего вида / размер экрана, вы можете просто использовать оператор if else, чтобы получить высоту строки состояния
почему верхний ответ не работает для некоторых людей, потому что вы не можете получить размеры, пока не готова предоставить. Используйте OnGlobalLayoutListener чтобы получить указанные размеры, когда вы действительно можете:
Источник
Высота строки состояния в Android
Какова высота строки состояния в Android? Это всегда одно и то же?
Из моих измерений кажется, что это 25dp, но я не уверен, что он имеет одинаковый рост на всех платформах.
(Я хочу знать это, чтобы правильно реализовать переход с постепенным исчезновением из активности, которая не имеет строки состояния, которая делает это)
На этот вопрос был дан ответ … Высота статуэтки?
Обновление ::
Текущий метод:
Ok, высота строки состояния зависит от размера экрана, например, в устройстве с размером экрана 240 X 320 высота строки состояния 20 пикселей, для устройства с размером экрана 320 x 480 высота строки состояния составляет 25 пикселей, для Устройство с разрешением 480 x 800, высота строки состояния должна быть 38 пикселей
Поэтому я рекомендую использовать этот скрипт для получения высоты строки состояния
(Старый метод), чтобы получить высоту строки onCreate() метода onCreate() вашей деятельности, используйте этот метод:
Из всех образцов кода, которые я использовал для получения высоты строки состояния, единственная, которая действительно работает в методе onCreate для Activity такова:
По-видимому, фактическая высота строки состояния хранится в качестве ресурса Android. Вышеприведенный код может быть добавлен в класс ContextWrapper (например, Activity ).
На устройствах MDPI строка состояния составляет 25 пикселей. Мы можем использовать это как основание и умножить его на плотность (округленное вверх), чтобы получить высоту строки состояния на любом устройстве:
Для справки: ldpi = .75, mdpi = 1, hdpi = 1.5, xhdpi = 2
Согласно руководящим принципам проектирования Google ; Высота строки состояния – 24 дп.
Если вы хотите получить высоту строки состояния в пикселях, вы можете использовать метод ниже:
Который можно вызвать из вида:
Я объединил некоторые решения вместе:
Это также работает с ссылкой refrence
У меня такая же проблема, как получить высоту строки состояния в onCreate. Это работает для меня.
Да, когда я пытаюсь использовать View, он дает результат 25px. Вот весь код:
Официальная высота 24dp , как официально заявлено Google на веб-странице Android Design .
240×320 – 20px 320×480 – 25px 480×800 + – 38px
Высота по умолчанию – 25 дп. С Android Marshmallow (API 23) высота была уменьшена до 24dp.
Это не сработало для меня в методе onCreate для активности, но когда я положил его в onClickListener и дал мне измерение 25
Чтобы решить эту проблему, я использовал комбинационный подход. Это необходимо, так как на планшетах системная панель уже вычитает пиксели при вызове display.getHeight (). Поэтому я сначала проверяю наличие системной панели, а затем подход Бена Клейтона, который отлично работает на телефонах.
Высота строки состояния 24dp в android 6.0
Вы можете найти ответ в исходном коде: frameworks \ base \ core \ res \ res \ values \ dimens.xml
Переключенное полноэкранное решение:
Это решение может выглядеть как обходное решение, но на самом деле это зависит от того, включено ли ваше приложение в полноэкранный режим (он же скрывает строку состояния) или нет:
Таким образом, если ваше приложение в настоящее время полноэкранное, то barheight будет равен 0.
Лично я должен был использовать это, чтобы исправить абсолютные координаты TouchEvent для учета строки состояния так:
И это получит абсолютную координату y, будь то приложение в полноэкранном режиме или нет.
Если вы точно знаете размер высоты VS
Например, в устройстве с размером экрана 320 x 480, высота строки состояния составляет 25 пикселей, для устройства с разрешением 480 x 800 высота строки состояния должна быть 38 пикселей
То вы можете просто получить ширину вашего вида / размер экрана, вы можете просто использовать оператор if else, чтобы получить высоту строки состояния
Причина, по которой главный ответ не работает для некоторых людей, заключается в том, что вы не можете получить размеры представления до тех пор, пока он не будет готов к рендерингу. Используйте OnGlobalLayoutListener чтобы получить указанные размеры, когда вы действительно можете:
Источник
Высота строки состояния в Android
какова высота строки состояния в Android? Это всегда одно и то же?
из моих измерений кажется, что это 25dp, но я не уверен, что он имеет одинаковую высоту на всех платформах.
(Я хочу знать это, чтобы правильно реализовать переход fade от действия, которое не имеет строки состояния к тому, что делает)
19 ответов:
обновление::
текущий метод:
ОК, высота строки состояния зависит от размера экрана, например в устройстве с разрешение 240 x 320 размер экрана статус бар высота 20 пикселей, для устройства с размером 320 x 480 экран статус бар высота-25 пикселей, для устройств с разрешением 480 х 800 состояние высота бруска должна быть 38px
поэтому я рекомендую использовать этот скрипт для получения высоты строки состояния
(старый метод), чтобы получить высоту строки состояния на onCreate() метод вашей деятельности, используйте этот метод:
из всех примеров кода, которые я использовал, чтобы получить высоту строки состояния, единственный, который на самом деле работает в onCreate метод an Activity это:
по-видимому, фактическая высота строки состояния сохраняется в качестве ресурса Android. Приведенный выше код может быть добавлен к ContextWrapper класса (например, Activity ).
на mdpi устройств, в строке состояния-25 пикселей. Мы можем использовать это в качестве основы и умножить его на плотность (округленный вверх), чтобы получить высоту строки состояния на любом устройстве:
для справки: ldpi=.75, mdpi=1, hdpi=1,5, xhdpi=2
Если вы хотите получить высоту строки состояния в пикселях, вы можете использовать следующий метод:
, который может быть вызван из деятельности с:
Я объединил некоторые решения вместе:
жесткое кодирование размера или использование отражения для получения значения status_bar_height считается плохой практикой. Крис Бэйнс говорили об этом в Droidcon Нью-Йорк. Рекомендуемый способ получения размера строки состояния — через OnApplyWindowInsetsListener:
Это было добавлено в API 20, а также обратно через ViewAppCompat.
у меня такая же проблема, чтобы получить высоту строки состояния в onCreate. Это работает для меня.
Да, когда я пытаюсь его с видом он обеспечивает результат 25px. Вот весь код :
официальная высота 24dp , как официально заявляет Google на Веб-страница дизайна Android.
высота по умолчанию используется для 25dp. С Android Marshmallow (API 23) высота была уменьшена до 24dp.
320×480-25px
480×800+ — 38px
это не сработало для меня в методе onCreate для активности, но сделал, когда я положил его в onClickListener и дал мне измерение 25
чтобы решить эту проблему, я использовал комбинированный подход. Это необходимо, так как на планшетах системная панель уже вычитает свои пиксели при отображении.getHeight() называется. Поэтому я сначала проверяю, присутствует ли системная панель, а затем подход Ben Claytons, который отлично работает на телефонах.
высота строки состояния составляет 24dp в android 6.0
вы можете найти ответ в исходном коде: Framework\base\core\res\res\values\dimens.xml
Переключить Разрешение В Полноэкранном Режиме:
Это решение может выглядеть как обходной путь, но на самом деле он учитывает, является ли ваше приложение полноэкранным (он же скрывает строку состояния) или нет:
таким образом, если ваше приложение в настоящее время полноэкранные, barheight будет равна 0.
лично мне пришлось использовать это, чтобы исправить абсолютные координаты TouchEvent для учета строки состояния следующим образом:
и это будет получить Абсолют y-координата, будет ли приложение полноэкранным или нет.
на Android 4.1 и выше вы можете настроить содержимое вашего приложения, чтобы оно отображалось за строкой состояния, чтобы содержимое не изменялось по мере скрытия и отображения строки состояния. Чтобы сделать это, используйте SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN. Вам также может потребоваться использовать SYSTEM_UI_FLAG_LAYOUT_STABLE, чтобы помочь вашему приложению поддерживать стабильный макет.
при использовании этого подхода вы несете ответственность за обеспечение того, чтобы критические части пользовательского интерфейса вашего приложения (например, встроенные элементы управления в Maps применение) не в конечном итоге покрывается системными барами. Это может сделать ваше приложение непригодным для использования. В большинстве случаев вы можете справиться с этим, добавив атрибут android:fitsSystemWindows в свой XML-файл макета, установленный в true. Это позволяет настроить заполнение родительской группы представлений, чтобы оставить место для системных окон. Этого достаточно для большинства приложений.
в некоторых случаях, однако, вам может потребоваться изменить заполнение по умолчанию, чтобы получить желаемый макет для вашего приложения. Чтобы напрямую манипулировать тем, как ваш контент выкладывается относительно системных панелей(которые занимают пространство, известное как «вставки содержимого» окна), переопределяют fitSystemWindows (Rect insets). Метод fitSystemWindows () вызывается иерархией представлений при изменении вставок содержимого для окна, чтобы позволить окну соответствующим образом настроить его содержимое. Переопределив этот метод, вы можете обрабатывать вставки (и, следовательно, макет вашего приложения), однако вы хотеть.
Если вы точно знаете размер высоты против
например, в устройстве с размером экрана 320 X 480 высота строки состояния составляет 25px, для устройства с 480 x 800 высота строки состояния должна быть 38px
тогда вы можете просто получить ширину вашего представления / размер экрана вы можете просто использовать оператор if else, чтобы получить высоту строки состояния
почему верхний ответ не работает для некоторых людей, потому что вы не можете получить размеры, пока не готова предоставить. Используйте OnGlobalLayoutListener сделать измерения, когда вы на самом деле можете:
Источник