3

私の Android アプリのユーザーは、含まれているアプリ ウィジェットが大きすぎると報告しています。

私はこの式を使用しました:

width/height = (number-of-cells * 74) - 2

そのため、4x1 ウィジェットの幅は 294 dp、高さは 72 dp になりました。しかし、私が言ったように、ユーザーはウィジェットが 4x1 よりも多くの場所を占めていると報告しています。

これはどのように起こりますか?Androidのバージョンによって違いはありますか?

編集:これを最小の幅/高さとサイズ変更幅/高さとして設定しました。この appwidget の私のレイアウト ファイルは使用するfill_parentため、そのサイズを拡張するべきではありません。

4

2 に答える 2

5

このドキュメントページ(Android 4.xに関連していると思います)は、式が次のとおりであることを示しています。

width/height = `70 * n - 30`

...nは、取得されたセルの数です。また、...

ウィジェットが追加されると、minWidth および minHeight の制約を満たすために必要な水平方向および垂直方向のセルの最小数を占めるようにウィジェットが引き伸ばされます。

質問で指定された寸法に基づいて、アプリケーションは幅方向に 5 セル (320 dp; 250 dp では不十分)、高さ方向に 2 セル (110 dp; 40 dp では不十分) に拡張されます。

于 2012-11-12T17:42:43.850 に答える
4

Androidのバージョンごとに異なるウィジェットをサポートするのは非常に簡単です。

Androidバージョン>=4.0をサポートするには、ウィジェットを適切なフォルダーに配置する必要があります。

  • /res/xml-v14
  • /res/layout-v14[オプション]

-v14APIレベル14(Android 4.0)を意味します。4.0以降のAndroidバージョンは、これらのフォルダー内のファイルを使用します。正しい式を計算android:minWidthして使用することを忘れないでください:android:minHeight

cell_size in dp = 70 × n − 30

作業中のウィジェットは既存のフォルダーに残しておくことができます。

  • /res/xml
  • /res/layout

正しいフォーラムを使用する:

cell_size in dp = 74 × n - 2

シンプルに保ち、計算された寸法を再利用するために、正しいフォルダに正しい寸法を作成し、サイズを参照することもできます。

  • /res/values/widget_size.xmlAndroidバージョン<4.0のサイズを含むファイルを作成します
<resources>
    <dimen name="cell_size_1">72dp</dimen>
    <dimen name="cell_size_2">146dp</dimen> 
</resources>
  • /res/values-v14/widget_size.xmlAndroidバージョン>=4.0のディメンションを含むファイルを作成します
<resources>
    <dimen name="cell_size_1">40dp</dimen>
    <dimen name="cell_size_2">110dp</dimen>
</resources>
  • ウィジェットのサイズを新しく作成されたディメンションに参照します。
android:minWidth="@dimen/cell_size_2"
android:minHeight="@dimen/cell_size_1"

残念ながら、これはAndroid4.04を実行しているGalaxyTab7.7では機能しません。3x1ウィジェットは2x1ですが、エミュレーターで正しいサイズが表示されます。私はそれがのためだと思います

セルの幅と高さ、およびウィジェットに適用される自動マージンの量はデバイスによって異なる場合がありますが、次の表を使用して、必要な占有グリッドセルの数を指定して、ウィジェットの最小サイズを概算できます。

アプリウィジェットの設計ガイドラインに記載されています

于 2013-03-06T11:41:38.843 に答える