2011-01-12 38 views
110

imageviewの高さと幅がfill_parentに設定され、同じ値が設定されたlinearlayoutが設定されています。だから私はこれが画面に合わせて私のイメージを設定する必要がありますと思います。しかし、それは80%のようにしかフィットしません(ランドスケープモードで上下のマージン)。アンドロイド:画面にフィットする画像ビューのストレッチ画像

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

imgView.setMinimumWidth(width); 
imgView.setMinimumHeight(height); 

imgView.setMaxWidth(width); 
imgView.setMaxHeight(height); 

他のアイデア:

は、私は成功せずに次のコードを試してみましたか?

+0

を必要とするものにストレッチしませんwrap_contentならば、あなたは

android:layout_width="75dp"android:layout_height="75dp"

を指定する必要がありますandroid:scaleType="fitXY"を使用する場合は、[この答え](http://stackoverflow.com/questions/2991110/android-how-to-stretch-an-image-to-the-screen-width-while-maintaining-aspect-rat/2999707#2999707)あなたに役立つでしょう。 – fredley

答えて

272

使用imgview.setScaleType(ScaleType.FIT_XY);

+1

ありがとう、完璧に動作します – Johan

+24

私はこれがあなたの望むものだと知っていますが、あなたがアスペクト比を気にしている画像では、これが伸びます。 –

+0

ImageViewのScrollView内での不思議な動作アスペクトさえ正しいままです。 – JNissi

109

レイアウトのxmlファイルandroid:scaleType="fitXY"
P.Sに与える:これは背景を伸ばし、ビューに合うようにデフォルトで設定されているように、画像がandroid:src="..."ではなくandroid:background="..."で設定されている場合に適用されます。

+6

+1ありがとうございました。 –

+0

バックグラウンドのものが私の問題を解決するのに役立たなかった、何か間違っている? を見てください: http://stackoverflow.com/questions/14164473/imageview-is-not-stretching-to-fit-the-screen –

+1

これは、画像の幅をハードコードする場合、縦横比を考慮しません。高さを調整したい場合 –

-9

しようとすると使用:

imageview.setFitToScreen(true); 
imageview.setScaleType(ScaleType.FIT_CENTER); 

これは正しい比率で画面にあなたのImageViewのに適合します。この

+12

"imageview.setFitToScreen(true);" - それは何ですか?文書化されていない方法? – Malachiasz

+0

私はeclipseを使用していますが、これはコンパイルされません: 'imageview.setFitToScreen(true)' – learner

+5

このような方法はアンドロイドにありません。 – NightFury

14

使用:

ImageView.setAdjustViewBounds(true); 
+2

これは 'android:scaleType =" fitXY "'と組み合わせて働いたものです。ありがとう – smac89

+0

@ smac89これらの組み合わせとFIT_CENTERだけの違いは何ですか? FIT_CENTERは使用しないでください。 – Jenix

+0

@ジェニクス、私はAndroidに最後に触れてからしばらくお待ちしていますが、 'fitXY'を行う理由は、画像が設定されたフレーム/ビューに比例して伸びるようにするためだと思います。' FIT_CENTER'音ビューの中央にイメージを置くだけで、ビューを埋めることはありません。私は間違っているかもしれませんが、どちらかを試して何がうまくいくかを調べることができます – smac89

5

は受け入れ答えは、XMLからそれをやりたいがあれば、あなたは私がXMLファイルにこのandroid:scaleType="fitXY"コードを使用しましたandroid:scaleType="fitXY"

+0

これは私が必要としたもので、それは私のために働いた。 – Mohammad

0

を使用することができ、完璧です。

0

はちょうどwrap_contentと

exampleImage.setScaleType(ImageView.ScaleType.FIT_XY)を使用するようにImageViewの高さと幅を変更します。

7

あなたは使用は、それがわずかに異なる問題ですが、あなたが

<ImageView 
android:layout_width="75dp" 
android:layout_height="75dp" 
android:id="@+id/listItemNoteImage" 
android:src="@drawable/MyImage" 
android:layout_alignParentTop="true" 
android:layout_alignParentStart="true" 
android:layout_marginStart="12dp" 
android:scaleType="fitXY"/> 
関連する問題