Получить ширину панели уведомлений 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;

Используйте ширину для расчета вашего пользовательского макета