Мне нужно знать точный размер ActionBar в пикселях, чтобы применить правильное фоновое изображение.
android
android-actionbar
Евгений
источник
источник
Ответы:
Чтобы получить высоту ActionBar в XML, просто используйте
или если вы пользователь ActionBarSherlock или AppCompat, используйте это
Если вам нужно это значение во время выполнения, используйте это
Если вам нужно понять, где это определяется:
источник
@dimen/abc_action_bar_default_height
напрямую (ActionBarComapt), и это работало (на устройстве mdpi). Но попытка получить это значение на Samsung Galaxy SIII вернула мне неправильное значение. Это потому, чтоvalues-xlarge
(как-то) предпочтительнее, чемvalues-land
в ландшафтном режиме. Ссылка на атрибут вместо этого работает как шарм.android.R.attr.actionBarSize
разрешит до 0 размер на устройствах до 3.0. Так что при использованииActionBarCompat
одного придерживатьсяandroid.support.v7.appcompat.R.attr.actionBarSize
вместо.Из декомпилированных источников Android 3.2
framework-res.apk
,res/values/styles.xml
содержит:3.0 и 3.1 вроде бы одинаковые (по крайней мере из AOSP) ...
источник
Чтобы получить фактическую высоту панели действий, необходимо разрешить атрибут
actionBarSize
во время выполнения.источник
Один из образцов Сота относится к
?android:attr/actionBarSize
источник
?attr/actionBarSize
(обратите внимание на отсутствие пространства имен Android), который работает на всех уровнях API.Мне нужно было правильно реплицировать эти высоты в приложении совместимости до ICS и вкопаться в основной источник фреймворка. . Оба ответа выше верны.
Это в основном сводится к использованию квалификаторов. Высота определяется измерением "action_bar_default_height"
По умолчанию он равен 48dip. Но для -land это 40dip, а для sw600dp - 56dip.
источник
Если вы используете ActionBar совместимости из недавнего пакета поддержки app7 v7, вы можете получить высоту, используя
Документация
источник
С новой библиотекой поддержки v7 (21.0.0) имя в
R.dimen
изменилось на @ dimension / abc_action_bar_default_height_ material .Поэтому при обновлении с предыдущей версии библиотеки поддержки следует использовать это значение в качестве высоты панели действий.
источник
?attr/actionBarSize
если вы ищете, чтобы соответствовать регулярномуActionBar
.Если вы используете ActionBarSherlock, вы можете получить высоту с
источник
abs__
ресурсы с префиксами напрямую.@ AZ13 ответ хороший, но согласно руководствам по дизайну Android , ActionBar должен быть минимум 48dp в высоту .
источник
источник
Краткое описание класса , как правило , хорошее место , чтобы начать. Я думаю, что метод getHeight () должно быть достаточно.
РЕДАКТИРОВАТЬ:
Если вам нужна ширина, она должна быть шириной экрана (верно?), И это можно собрать следующим образом .
источник
На моем Galaxy S4, имеющем> 441 точек на дюйм> 1080 x 1920> Получение высоты Actionbar с помощью getResources (). GetDimensionPixelSize Я получил 144 пикселя.
Используя формулу px = dp x (dpi / 160), я использовал 441dpi, тогда как мое устройство
относится к категории 480dpi. так что это подтверждает результат.
источник
Я сделал таким образом для себя, этот вспомогательный метод должен пригодиться кому-то:
источник