画像を縦方向ではなく横方向に合わせて拡大/縮小したい。とにかく、できればxmlを介してこれを達成しますが、動的にも実行しますか?
それはLINEARLAYOUTのためでなければなりませんが鍵です。
画像を縦方向ではなく横方向に合わせて拡大/縮小したい。とにかく、できればxmlを介してこれを達成しますが、動的にも実行しますか?
それはLINEARLAYOUTのためでなければなりませんが鍵です。
scaleType
に属性を設定できますImageView
。ドキュメントで可能な値を確認してください。
一般的な使用法は、を設定することですscaleType="centerCrop"
。これにより、画像のアスペクト比が維持されますが、結果のスケールの幅と高さが実際の幅と高さ以上になるようにスケールされますImageView
。
アスペクト比を変更したい場合は、を使用できますscaleType="fitXY"
。
注2:正解については、下部の更新を参照してください。
注:申し訳ありませんが、質問を読み間違えたため、これを一方向に伸ばしたいと考えました。私がそれを理解したら私の答えを修正しますが、これは少なくともそれがまったく伸びないようにします。
これを実現するには、新しい描画可能なリソースを作成する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/your_image"
android:tileMode="clamp" />
リソースの名前に置き換えyour_image
て、これをdrawablesフォルダーに保存し、これを背景として設定するだけです。これにより、線形レイアウトの左上に画像が描画され、繰り返されないはずです。
更新:これにより、画像が垂直方向ではなく水平方向に引き伸ばされ、線形レイアウトの上部に配置されます。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/your_image"
android:gravity="fill_horizontal|clip_vertical|top"
android:tileMode="disabled" />
最初の取り違えでごめんなさい。
とに設定layout_width
します。次に、をに設定します(すべてではなく、それ自体に対して)。match_parent
layout_height
wrap_content
scaleType
FIT_XY
ImageView
LinearLayout