Получить ширину панели уведомлений Android
Я создаю некоторые пользовательские удаленные элементы управления. Чтобы рисовать пользовательские представления и макеты в растровое изображение так же широко, как панель уведомлений, мне нужна его точная ширина.
Поскольку каждый поставщик изменяет ширину панели уведомлений, и в большинстве случаев он будет меняться в зависимости от ориентации. Трудно найти правильный шаблон.
Есть ли способ получить его ширину?
![введите описание изображения здесь]()
Розовая часть - это чистые remoteViews, а нижняя часть - это изображение, которое я рисую на нем своим пользовательским представлением, поскольку у меня нет родительской ширины, все дочерние представления рушится вместе.
Ответы
Ответ 1
Самый простой способ - использовать LinearLayout с android:orientation="horizontal"
и android:layout_width="match_parent"
и поместить android:layout_weight="1"
и android:layout_width="0dp"
для каждого вида в этом макете. Это означает, что каждый вид в этом макете будет иметь одинаковую ширину. Подробнее об этом вы можете прочитать здесь.
ОБНОВЛЕНИЕ: В здесь говорится, что ширина лотка для уведомлений 478dp.
Итак, попробуйте с этим. Возможно, некоторые производители имеют разный размер, но это хороший номер для начала:).
Ответ 2
Вы можете попробовать это, чтобы получить ширину и рассчитать свой собственный макет.
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
Используйте ширину для расчета вашего пользовательского макета