Расчет размера приложения

Это может быть я, но когда я вычисляю минимальные размеры виджета приложения в соответствии с формулой, приведенной на странице Android, я не получаю правильную ширину виджета; Формула какследует:

width(n) = (70 x n) - 30

Когда я хочу иметь виджет 5x1, правильная ширина будет (5 * 70) - 30 = 320dp. Однако при тестировании на Motorola Xoom он становится виджетом 4x1. Я тестировал разные значения, и 400dp кажется хорошим для 5x1 на Motorola Xoom с Honeycomb, но затем я протестировал его на обычной Galaxy Tab с Gingerbread, а затем он разрешается до 6x1 (как и следовало ожидать).

Итак, два вопроса здесь;

What difference between Gingerbread and Honeycomb am I overlooking? Since I know ICS widget size no longer has padding between widgets, is there some rule of thumb here as well?

Ответы на вопрос(4)

Решение Вопроса

oogle. Вам лучше использовать несколько папок xml-xxx, в которых можно указать более точные значения minWidth & amp; minHeight, которые соответствуют различным экранам & amp; Операционки.

Прямо сейчас у меня четыре исключительно на основе ОС:

xml       // standard
xml-v11   // Honeycomb grid
xml-v14    // ICS's new extra padding
xml-sw552dp-v14  // ICS tablet padding

Но, как я хорошо настраиваю, мне, возможно, придется добавить несколько новых папок для конкретных dpis или экранов.

Быстрое обновление:

Только некоторые устройства используют автоматическое заполнение. Samsung & amp; У HTC есть пользовательские интерфейсы, которые используют полноразмерные виджеты, поэтому они переопределяют заполнение ОС на своих средствах запуска.

 MrJre24 апр. 2012 г., 16:53
Вы в значительной степени правы, используя 3 разных размера ОС; widthICS (n) = (70 x n) - 30 - только ICS, width (n) = (74 x n) - 2 - для пряников и более ранних версий. Я добавил 2 * 8 к формуле Gingerbread, чтобы, очевидно, получить правильный размер Honeycomb, который, на мой взгляд, не совсем точен, но работает.
 20 сент. 2013 г., 23:50
@Jose_GD - это приятное место, которое работает для всех. не помню формулу, хотя ...
 18 сент. 2013 г., 22:17
@MrJre У меня нет проблем с использованием Gingerbread и более ранней формулы Honeycomb в моем виджете на главном экране. Пробовал с эмулятором (да у меня много терпения) и с Galaxy Tab 10.1
 18 сент. 2013 г., 22:20
@radley: & quot; Не слишком много устройств полностью следуют рекомендованной формуле Google & quot ;. Ну, мой Nexus 7 со стоковым Android сообщает о виджете 3x3 для моего 4x3. Я использую minWidth = 250dp и minHeight = 180dp, как предложено в документации. Если спонсируемые Google устройства ведут себя так, чего мы можем ожидать от других ...
 23 сент. 2013 г., 21:05
У меня есть разные значения minWidth / minHeight для трех систем. Мы тестировали на многих устройствах, нашли это сладкое место. Для виджета шириной 4 сетки: базовый xml android: minWidth = & quot; 288dp & quot ;, xml-v11 android: minWidth = & quot; 318dp & quot ;, и xml-v14 android: minWidth = & quot; 250dp & quot; работает на всех устройствах.

если вы настроили таргетинг до соты (или не указали targetSdkVersion при указании minSdkVersion до сота), то вычисления сетки сота (и сетки ICS) не вступят в силу. Недостатком этого является то, что вы упускаете новые функции ОС, но если они вам на самом деле не нужны, то сохранение целевой предварительной соты избавит вас от необходимости настраивать папки xml.

4x1 widgetЯ использовал эти размеры дляres/values/dimens.xml:

<!-- size = (74 x n) - 2 -->
<dimen name="appwidget_margin">0dp</dimen>
<dimen name="appwidget_min_width">294dp</dimen>
<dimen name="appwidget_min_height">72dp</dimen>

и дляres/values-v14/dimens.xml:

<!-- size = (70 x n) - 30 -->
<dimen name="appwidget_margin">0dp</dimen>
<dimen name="appwidget_min_width">250dp</dimen>
<dimen name="appwidget_min_height">40dp</dimen>

I used пакет шаблонов виджетов для фоновых изображений.

Вофициальный гид там написано, что поле по умолчанию в res / values / dimensions.xml должно быть 8dp, но если я использую 8dp, мой виджет будет меньше стандартных виджетов на рабочем столе (поиск в Google, погода и т. д.). Это потому, что в фоновое изображение встроено поле для v1-v13:

enter image description here

Я тестировал его на HTC Desire, Nexus S, эмуляторе Android 2.2 и эмуляторе Android 2.3.3. При наличии вышеупомянутых фонов и конфигурации пакета шаблонов размер моего виджета такой же, как и у других стандартных виджетов, и выглядит хорошо на всех протестированных устройствах.

Существует также проблема с различными лаунчерами. Я рекомендую эту статью для чтения:http://radleymarx.com/blog/app-widget-padding-margins-in-ics-android/

 26 июн. 2013 г., 21:08
Кстати, автор блога, который вы рекомендуете - это тот же парень, который написал здесь принятый ответ;)

есть автоматическое заполнение. И формула, которую вы использовали для ICS. Для более старых версий есть другая формула:

num*74 - 2
 MrJre04 апр. 2012 г., 14:48
Таким образом, 368dp должно хватить для ширины виджета 5x1 в Motorola Xoom с сотами в соответствии с вашей формулой, за исключением того, что я не получаю виджет 4x1 с такой шириной:
 05 дек. 2012 г., 23:25
Только некоторые устройства используют автоматическое заполнение. Samsung & amp; У HTC есть пользовательские интерфейсы, которые используют полноразмерные виджеты, поэтому они переопределяют заполнение ОС на своих средствах запуска.

Ваш ответ на вопрос