14

它可能是我,但當我根據android頁面上給出的公式計算最小應用小部件大小時,我沒有得到正確的小部件寬度;計算公式爲followsAppwidget大小計算

寬度(N)=(70 XN) - 30

當我想有一個5×1窗口小部件,正確的寬度將是(5 * 70) - 30 = 320dp。然而,當在摩托羅拉Xoom上進行測試時,它會解析爲4x1小部件。我已經測試了不同的值,400dp對於Honeycomb的motorola xoom上的5x1似乎很好,但是接下來我會在一個普通的Galaxy Tab上用薑餅進行測試,然後解析爲6x1(就像人們所期望的那樣)。

所以這裏有兩個問題;

  • 薑餅和蜂窩之間有什麼區別可以忽略?
  • 由於我知道ICS小部件大小不再有小部件之間的填充,這裏有一些經驗法則嗎?

回答

10

沒有太多的設備完全效仿谷歌的建議公式。你最好使用幾個xml-xxx文件夾,它們可以指定更精確的minWidth & minHeight,它們對應於不同的屏幕&操作系統。

現在我4只基於OS:

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

但正如我微調,我可能要添加一些新的文件夾爲特定的DPI或屏幕。

快速更新:

只有一些設備使用自動填充。三星&宏達電擁有使用全寬度小部件的自定義用戶界面,因此它們會覆蓋其啓動器上的操作系統填充。

+4

你幾乎適合使用3種不同的操作系統大小; widthICS(n)=(70 x n) - 30僅適用於ICS,寬度(n)=(74 x n) - 2適用於薑餅及更早版本。 我在薑餅配方中添加了2 * 8,顯然得到了正確的蜂巢尺寸,這並不是真的準確,我猜測,但是可行。 – MrJre 2012-04-24 14:53:25

+0

@MrJre在我的主屏幕小部件中,我使用Honeycomb上的薑餅和早期公式沒有問題。嘗試模擬器(是的,我有很多的耐心),並與Galaxy Tab 10.1 – 2013-09-18 20:17:17

+1

@radley:「沒有太多的設備完全遵循谷歌建議的公式」。那麼,我的Nexus 7與Android的股票報告我的4x3 3x3部件。按照文檔中的建議,我使用minWidth = 250dp和minHeight = 180dp。如果Google贊助的設備的行爲如此,我們可以從其他人那裏得到什麼...... – 2013-09-18 20:20:03

4

在ICS中沒有填充,有自動填充。你使用的公式是ICS。 對於舊版本還有另外一個公式:

num*74 - 2 
+1

因此368dp應該足夠用於根據您的公式使用蜂窩的5x1小部件寬度,除非它沒有,因爲我仍然獲得具有該寬度的4x1小部件:/ – MrJre 2012-04-04 12:48:09

+0

只有一些設備使用自動填充。三星和HTC擁有使用全寬度小部件的自定義用戶界面,因此它們會覆蓋其啓動器上的操作系統填充。 – radley 2012-12-05 22:25:09

24

在我4X1部件,我用這些尺寸爲RES /價值/ 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 /值-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> 

我使用widget templates pack作爲背景圖像。

official guide在res/values/dimens.xml中有默認邊距應該是8dp,但是如果我使用8dp,我的小部件比桌面上的標準小部件(谷歌搜索,天氣等)要小。那是因爲邊距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/

+1

順便說一句,你推薦的博客文章的作者是在這裏寫下接受的答案的同一個人;) – 2013-06-26 19:08:14

1

注意:如果您的目標是預蜂巢(或者在指定honeycomb之前指定minSdkVersion時未指定targetSdkVersion),那麼蜂窩網格(和ICS網格)的計算不會生效。缺點是你錯過了更新的操作系統功能,但如果你實際上並不需要它們,那麼保持目標前蜂窩將節省定製xml文件夾的麻煩。