3

私はいくつかのアプリケーション ウィジェットを持つアプリケーションに取り組んでおり、そのうちのいくつかは を使用しGridViewてコンテンツを表示しています。コンテンツは映画のカバー アート画像の束であり、画像の元の縦横比を維持したいと考えています。

または、画像の縦横比を宣言する方法を探しています。GridViewただし、ユーザーがアプリ ウィジェットのサイズを変更した場合でも、画像が の幅に収まるようにすることが重要です。

ImageViewsを扱うときにの サブクラスを使用することはできないため、それRemoteViewは論外です。私は現在、高さと幅を定義したScaleType.CENTER_CROP上で使用していますが、ご想像のとおり、それは完璧ではありません。ImageView

助言がありますか?

4

5 に答える 5

1

ImageView は、TextView とは少し異なります。ImageView には、ウィジェットの前景イメージを定義する「src」があります。イメージビューで背景を設定すると、前景の背後に表示されます。これらのイメージは両方とも、android:stretchModeおよび他の Android パラメータによって異なる方法で制御されます。

うまくいくと思うもののパターンを得るために、すべてandroid:srcをAND の逆に変更することをお勧めします。android:backgroundいくつかの画像を好きなように取得したら、GIMP、Photoshop を使用して画像を操作し、好きな画像と同じサイズにします。これらのパラメーターが適切に機能するように、画像自体が適切である必要があります。画像のサイズ、密度、XY 比率が重要です。

于 2013-02-04T09:24:05.717 に答える
1

リモートビューのサブクラスを作成し、ビットマップの設定で次のようなものを使用します。

https://stackoverflow.com/a/2999707/944070

またはその状況での onMeasure のオーバーライド:

https://stackoverflow.com/a/4688335/944070

于 2013-02-04T08:31:10.160 に答える
1

GridView の columnWidth を画像の幅として、numColumns を "auto_fit" として、stretchMode を "spacingWidth" として設定してみてください。

<GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="50dp"
        android:numColumns="auto_fit"
        android:stretchMode="spacingWidth" />
于 2013-01-30T09:21:15.210 に答える
0

ここで別の appwidget アスペクト比の質問に使用される RelativeLayout+ShapeDrawable テクニックを参照してください

これは AppWidget の制約内で機能し、この問題に適用できるはずです。

于 2014-02-23T20:09:15.143 に答える