1

画像を縦方向ではなく横方向に合わせて拡大/縮小したい。とにかく、できればxmlを介してこれを達成しますが、動的にも実行しますか?

それはLINEARLAYOUTのためでなければなりませんが鍵です。

4

3 に答える 3

2

scaleTypeに属性を設定できますImageViewドキュメントで可能な値を確認してください。

一般的な使用法は、を設定することですscaleType="centerCrop"。これにより、画像のアスペクト比が維持されますが、結果のスケールの幅と高さが実際の幅と高さ以上になるようにスケールされますImageView

アスペクト比を変更したい場合は、を使用できますscaleType="fitXY"

于 2012-09-10T17:34:06.847 に答える
2

注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" />

最初の取り違えでごめんなさい。

于 2012-09-10T19:09:32.290 に答える
0

とに設定layout_widthします。次に、をに設定します(すべてではなく、それ自体に対して)。match_parentlayout_heightwrap_contentscaleTypeFIT_XYImageViewLinearLayout

于 2012-09-10T17:33:30.483 に答える