Форум программистов, компьютерный форум CyberForum.ru

Размер виджета рабочего стола, после изменения его размера Android - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
ArGet
 Аватар для ArGet
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3
20.03.2013, 07:25     Размер виджета рабочего стола, после изменения его размера Android #1
Здравствуйте, коллеги.

Столкнулся с проблемой при разработке виджета для рабочего стола. С появлением возможности изменения размера виджета пользователем, стало не понятно каким размером обладает виджет в ту или иную минуту, и как адекватно реагировать виджету на изменение его размера.

Моя проблема заключается в том, что мне необходимо точно знать сколько ячеек занимает виджет по горизонтали в данный момент времени. Я делаю что-то наподобие виджета "Управления питания", это будет панель с иконками.
Кликните здесь для просмотра всего текста


А идея в том, что при изменении размера виджета количество иконок будет изменяться, но четкое количество, а не так как реализовано в виджете "Сетка Evernote"
Кликните здесь для просмотра всего текста


Вот часть кода, который я смог написать не без помощи интернета, но он определяет минимальные и максимальные значения виджета и не решает главной проблемы, определения количества занимаемых ячеек:

Код
public void onAppWidgetOptionsChanged(Context ctxt, AppWidgetManager mgr, 
                                      int appWidgetId, Bundle newOptions){

    RemoteViews updateViews = new RemoteViews(ctxt.getPackageName(), R.layout.widget);

    String msg = String.format(Locale.getDefault(),
                      "[%d-%d] x [%d-%d]",
                      newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH),
                      newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH),
                      newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT),
                      newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT));

    updateViews.setTextViewText(R.id.size, msg);

    mgr.updateAppWidget(appWidgetId, updateViews);
}
Если кто может чем-то помочь, буду очень признателен.

С уважением, Гетьманенко Артем
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 07:25     Размер виджета рабочего стола, после изменения его размера Android
Посмотрите здесь:

Android Одинаковый ли размер стека у разных версиях/девайсах Android?
Android Не удаляется приложение с рабочего стола
Отловить изменения в статус баре Android Java Android
Android Открытие диалога при удалении виджета с рабочего стола
Android Какого размера делать персонажа для разных экранов Android?
Android Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Android Как реализовать отслеживание изменения даты в android?
Android Почему Android Studio не сразу подхватывает изменения кода(только после переустановки apk)?
Android Как обеспечить одинаковый размер картинки на разных экранах Android?
Android Событие после изменения текста в TextView
Android Приложение запускается из play, но не запускается с рабочего стола
Android label меняет размер текста при смене ориентации Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
20.03.2013, 22:09     Размер виджета рабочего стола, после изменения его размера Android #2
На хабре я нашел и использую вот такой код. Только он работает на дроиде начиная с версии 4.2 API 17
Java
1
2
3
4
5
6
7
8
9
@Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        final String action = intent.getAction();
        if (action.equalsIgnoreCase("android.appwidget.action.APPWIDGET_UPDATE_OPTIONS")) {
            Bundle b = intent.getBundleExtra("appWidgetOptions");
            int col = (Integer) b.get("appWidgetMinWidth")/80;
            int row = (Integer)  b.get("appWidgetMaxHeight")/100;
    }
ArGet
 Аватар для ArGet
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3
20.03.2013, 22:28  [ТС]     Размер виджета рабочего стола, после изменения его размера Android #3
Цитата Сообщение от dubok79 Посмотреть сообщение
На хабре я нашел и использую вот такой код. Только он работает на дроиде начиная с версии 4.2 API 17
Java
1
2
3
4
5
6
7
8
9
@Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        final String action = intent.getAction();
        if (action.equalsIgnoreCase("android.appwidget.action.APPWIDGET_UPDATE_OPTIONS")) {
            Bundle b = intent.getBundleExtra("appWidgetOptions");
            int col = (Integer) b.get("appWidgetMinWidth")/80;
            int row = (Integer)  b.get("appWidgetMaxHeight")/100;
    }
Спасибо, попробовал, но даже на стандартном казалось бы разрешении 1280х800(Nexus 7) есть загвоздка, от 1 до 5 ячеек все определяет правильно, а вот при 6 подсчитывает как 7.
Не уверен, что с другими конфигурациями будет все нормально.

Но это пока что лучшее, что есть для решения, еще раз спасибо!
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
20.03.2013, 22:31     Размер виджета рабочего стола, после изменения его размера Android #4
Люди писали, что ничего внятного из документации найти не удалось. параметры WidgetMaxWidth и WidgetMinHeight вообще оказались бесполезными. Методом научного тыка добились того, что написано выше. Видать тестировали не на планшетах.
ArGet
 Аватар для ArGet
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 3
20.03.2013, 22:42  [ТС]     Размер виджета рабочего стола, после изменения его размера Android #5
Цитата Сообщение от dubok79 Посмотреть сообщение
Люди писали, что ничего внятного из документации найти не удалось. параметры WidgetMaxWidth и WidgetMinHeight вообще оказались бесполезными. Методом научного тыка добились того, что написано выше. Видать тестировали не на планшетах.
Насчет документации согласен, она сильно устарела, и даже противоречива в некоторых вопросах, а некоторое вовсе и не описано.
Yandex
Объявления
20.03.2013, 22:42     Размер виджета рабочего стола, после изменения его размера Android
Ответ Создать тему
Опции темы

Текущее время: 01:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru