幅いっぱいに画像を引き伸ばし、幅に応じて高さを調整し、縦横比を維持したいと考えています。縦横比が維持されるように、幅全体(fillparent)とイメージビューの高さを調整する必要があります。
私は fit_xy を試しましたが、私の場合はうまくいきませんでした。私を助けてください
幅いっぱいに画像を引き伸ばし、幅に応じて高さを調整し、縦横比を維持したいと考えています。縦横比が維持されるように、幅全体(fillparent)とイメージビューの高さを調整する必要があります。
私は fit_xy を試しましたが、私の場合はうまくいきませんでした。私を助けてください
スケール タイプ fit_xy を設定した場合でも、2 つの回避策が考えられます。
1) デフォルトでは、Android は ImageView に合わせて画像を縮小し、縦横比を維持します。android:src="..."
ただし、ではなくを使用して ImageView に画像を設定していることを確認してくださいandroid:background="..."
。src=
アスペクト比を維持して画像をスケーリングしますが、ImageView のサイズに正確に収まるように画像をbackground=
スケーリングおよび歪曲します。(ただし、背景とソースを同時に使用できます。これは、1 つの ImageView を使用して、メイン画像の周りにフレームを表示する場合などに役立ちます。)
2)android:adjustViewBounds
再スケーリングされた画像に合わせて ImageView 自体のサイズを変更することも確認する必要があります。たとえば、通常は正方形の ImageView に長方形の画像がある場合、adjustViewBounds=true を指定すると、ImageView のサイズも長方形に変更されます。これは、ImageView の周りに他のビューがどのように配置されるかに影響します。
パラメータを使用して、デフォルトの画像のスケーリング方法を変更できandroid:scaleType
ます。ちなみに、これがどのように機能するかを知る最も簡単な方法は、自分で少し実験することです! Eclipse でのプレビューは通常間違っているため、エミュレーター自体 (または実際の電話) でレイアウトを確認することを忘れないでください。
私が使用している機能がいつ Android SDK に追加されたのかはわかりませんが、OP が探していることを正確に実行する簡単なソリューションがあります。
予想どおり、layout:width と layout:height を fill_parent に設定します。
別のレスポンダーが正しく言及したように、背景ではなく src を使用して画像を見つけます。
ただし、fit_xy の scaleType を試す代わりに (最長の辺ではなく、ビューに収まる最も狭い辺を見つけます)、centerCrop の scaleType を使用します。
centerCrop は、縦横比を維持しながら、ビューポートを中央に配置して塗りつぶします。
お役に立てれば!現在の雇用主のために開発した商用アプリの webView 読み込みオーバーレイに使用しました。
ソリューションのコピー/貼り付け: アクティビティ XML ファイルに次の行を追加します。
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/your_image_name"
/>