2014-10-16 5 views
1

Есть ли способ узнать размер виджета автоматического изменения размера в пикселях, прежде чем размещать этот виджет на lockscreen? Например, когда мы размещаем виджет на lockscreen, тогда начата настройка конфигурации и как это действие может получить размер виджета?Как получить размер виджет-окна lockscreen?

ответ

0

AFAICT, приложение не может определить размер виджета, пока пользователь не разместит виджет на экране (блокировки или дома). Даже тогда ОС возвращает размер диапазон [Почему?] и, конечно, пользователь может изменить размер виджета.

E.g. добавить отладочный код onUpdate() метод давал AppWidgetProvider в:

Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetIds[0]); 
    int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH); 
    int minHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT); 
    int maxWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH); 
    int maxHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT); 
    Log.i("getAppWidgetOptions", String.format(
      "getAppWidgetOptions %d x %d .. %d x %d", 
      minWidth, minHeight, maxWidth, maxHeight)); 

Запуск на Nexus 4 эмулятора, недавно размещенных отчетов виджетов главного экрана: 240 x 58 .. 302 x 84 в Dp единицах. Это с <appwidget-provider> XML, который устанавливает:

android:minWidth="180dp" 
android:minHeight="40dp" 
android:minResizeWidth="180dp" 
android:minResizeHeight="40dp" 

AppWidgetProvider может обнаружить, когда его виджеты изменить размер перекрывая onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions). С аналогичным кодом, как указано выше [но опускайте вызов getAppWidgetOptions()], он регистрирует диапазоны, такие как 240 x 58 .. 302 x 84 и (после того, как вручную растягивает виджет шире) 328 x 58 .. 408 x 84.

Даже на экране блокировки виджет может занять пространство экрана с клавиатуры блокировки, если пользователь перетаскивает его, хотя я не уверен, что это изменит эти значения минимального/максимального размера.

+0

Да. Боюсь, вы правы. Невозможно получить размер области виджета lockscreen. –

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