私はAppWidgetを設計していますが、そのような問題に遭遇しました:私はxmlで定義します
android:minWidth ="296dp"
android:minHeight="146dp"
これは、ウィジェットの 4x2 セル サイズを意味します。
私のプログラム コードでは、キャンバスにテキストと図を描画してカスタム ビューを作成しています。カスタム ビューを適切にスケーリングするには、ホーム画面上の appwidget の配置の境界寸法を知る必要があります。ホーム画面で実際の appwidget サイズを決定する方法に関する有用な情報を見つけることができなかったので (すべてのリソースが「できない!」と言っていましたが、本当にそうなのですか?)、 と を使用して appwidget のサイズを見積もりandroid:minWidth
ましたandroid:minHeight="146dp"
。
問題は、テストに使用したすべてのデバイス、特にタブレットに関係するすべてのデバイスでウィジェットを適切に表示できないことです。https://developer.android.com/guide/practices/ui_guidelines/widget_design.htmlおよびその他の公式ドキュメント
を読みましたが、正しい結論に達することができません。
1 - 1 つのセルのサイズを決定するための 2 つの式を見つけました。
1)minWidth or minHeight = 70 * n - 30 and
2)minWidth or minHeight = 74 * n - 2
私は 2 番目を使用して、通常のハンドセット (Samsung Galaxy Tab ではなく) で完全に機能することを確認しましたが、当局は最初のものを使用することを提案しています。ハンドセットで最初のものを使用した場合も機能しますが、サイズの小さいウィジェット コンポーネント (サイズのウィジェット コンポーネント - キャンバスに描画するテキスト、四角形など) があるため、appwidget の外観は 2 番目よりも悪くなります。場合。
タブレットの場合、カスタム ビューの左右に空白があり、ウィジェット レイアウト (カスタム ウィジェットと 2 つのボタンがある場所) を考慮すると、見栄えが悪くなります。appwidget の実際の幅と推定幅の不一致により、タブレットの空白が発生したと思います。
タブレットで適切に見えるウィジェットのサイズを計算するにはどうすればよいですか?
2 - プログラムでビューを作成しているため、9 パッチ リソースを使用できません。レイアウト ウィジェットで android:scaleType を使用してみました
<ImageView
android:id="@+id/custom_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:clickable="true"
android:contentDescription="@string/image_description" />
しかし、たとえば、Motorola Xoom では、カスタム ビューを拡張した後、appwidget の外観が悪くなります。
3 - Android デバイス自体がウィジェットのサイズを変更することはわかっていましたが、そのようなサイズ変更のロジックを黙ってキャッチすることはできませんでした。
結局のところ、私の場合、ハンドセットとタブレットの appwidget サイズをどのように設計するのですか? 大変お世話になりました。