web-dev-qa-db-ja.com

Android Imageviewでスケーリングを防ぐにはどうすればよいですか?

480ピクセル×40ピクセルの画像があります。この画像を拡大縮小せずにImageViewに表示したいと思います。

例:画面の幅が320ピクセルしかない場合は、画像の320ピクセルだけを画面に表示し、ImageViewに詰め込まないようにします(画像の残りの部分が切り取られることを意味する場合でも)。

それに合わせてスケーリングされないようにする方法はありますか?

編集:また、画像の左側をデバイスの画面の左側に揃えたいと思います。

ありがとう

14
PaulG

使用する ScaleType.CENTER、XMLでは次のようになります。

Android:scaleType="center"

これにより、「画像はビューの中央に配置されますが、スケーリングは実行されません」

詳細はこちら: http://developer.Android.com/reference/Android/widget/ImageView.ScaleType.html

(ちなみにこれはグーグル「imageviewscale」の最初のヒットです)

27
nhaarman

MATRIXスケールタイプを使用して、スケーリングおよびセンタリングなしに設定します

SetImageMatrix(matrix);を使用して設定しない限り、単位行列を使用します。

Android:scaleType="matrix"

またはJavaの場合:

view.setScaleType(ImageView.ScaleType.MATRIX);
13
Renate

これを試してください:

                    Android:adjustViewBounds="true"
                    Android:scaleType="centerCrop"
1
Kai Wang

場合

Android:scaleType = "center"

動作しない場合は、画像をどのように設定するかを確認してください。 Android:backgorundではなくAndroid:srcを使用する必要があります

そう

 Android:scaleType="center"
 Android:src="@drawable/yourDrawable"
0
Jack The Ripper

同様の問題が発生しました。固定サイズのグラフィックを画面に合わせて拡大縮小したいのですが、比例して480 x200でした。

高さにFill_parentを使用したので、幅にスケーリングとwrap_contentが適用されます。同様に、親を左に揃え、親を上に揃えます。

あなたの場合、親を左に揃えるだけでなく、両方でwrap_contentを使用することができます。次に、通常の画面でRight Margin 180dpを使用して幅を調整し、幅が維持されていることを確認しました。

<ImageView
    Android:id="@+id/imageLayer"
    Android:layout_width="wrap_content"
    Android:layout_height="fill_parent"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentTop="true"
    Android:layout_marginRight="180dp"
    tools:ignore="ContentDescription" />
0
birdman