10

Я создаю некоторые пользовательские удаленные элементы управления. Для того, чтобы нарисовать пользовательские представления и макеты в растровое изображение так же широко, как панель уведомлений, мне нужна его точная ширина.Получите ширину панели уведомлений Android

Поскольку каждый поставщик изменяет ширину панели уведомлений, и в большинстве случаев он будет меняться в зависимости от ориентации. Трудно найти правильный шаблон.

Есть ли способ получить его ширину?

enter image description here enter image description here

розовая часть чистая remoteViews, а нижняя часть является ImageView, который я обращаю свой собственный взгляд на него, так как я не имею родительскую ширину, все виды ребенка получают осыпаться вместе ,

+1

Я не знаю ни одного API, который предлагает это, и я бы скептически относился к любым хакам. Например, уведомления в Chrome OS (поднятые приложениями Android) входят в область уведомлений Chrome OS, которая несколько отличается от оттенка уведомления в обычных средах Android. – CommonsWare

+0

У меня такая же проблема – Mahfa

+0

, может быть, вы можете поделиться своим кодом для этого? – Sodiq

ответ

0

Вы можете попробовать это, чтобы получить ширину и рассчитать заказного макета

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 

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

+3

Я думаю, этот код обеспечит максимальную ширину и высоту экрана. Не отображается ширина панели уведомлений. – Akshay

+0

возможно [это] (http://stackoverflow.com/questions/3355367/height-of-statusbar/3356263#3356263) ответит на ваш вопрос. – ZeroOne

+0

Это определенно не размер уведомлений. Это даст неправильное измерение для планшетов. И есть гарантия на будущее, чтобы это было правдой. – tasomaniac

2

Самый простой способ заключается в использовании LinearLayout с android:orientation="horizontal" и android:layout_width="match_parent" и положите android:layout_weight="1" и android:layout_width="0dp" для каждого вида в этом макете. Это означает, что каждый вид в этом макете будет иметь одинаковую ширину. Подробнее об этом вы можете прочитать here.

ОБНОВЛЕНИЕ: В here говорится, что ширина лотка для уведомлений 478dp. Итак, попробуйте с этим. Возможно, некоторые производители имеют разный размер, но это хороший номер, чтобы начать с :).

+0

Мне нужна точная ширина панели в пикселях :) – Mahfa

+0

Зачем вам нужна точная ширина? Никогда не рекомендуется вычислять размер просмотров вручную. –

+0

Мне нужно это для вычисления размера растрового изображения в моей загрузке изображения. @Vladimir – Mahfa

Смежные вопросы