2012-01-03 9 views
15

私は、30×30ピクセル、最大利用可能幅に画像をスケーリングアスペクト比を維持し、ImageViewの余分なスペースを避け

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:background="@color/red" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:adjustViewBounds="true" 
     android:scaleType="fitStart" 
     android:src="@drawable/green_square"/> 

</LinearLayout> 

あるgreen_square.pngファイルは、私が達成しようとしている何この単純なレイアウトXMLを持っており、親の幅を塗りつぶすように画像を拡大しています。これは、ImageViewの余分なスペースなしで縦横比を保持しています。

避けたい余分なスペースを参照するために、ImageViewに赤い背景を追加しました。

Here is my goal

+4

てみ 'アンドロイド://グループ: – sebataz

+0

感謝' adjustViewBounds =「true」と、それは私が考えたものだが、それはこの問題は、多くのユーザーを悩ませているように見えますが、すでに –

+0

だ、 HTTPをこのリンクをチェックしてください。 google.com/group/android-developers/browse_thread/thread/89d21a582ebc5b21 –

答えて

-1

利用スケールタイプ "fitCenter" または "fitxy"

+1

返事をありがとう、しかし、 bottom(fitStartを使用している場合)およびfitXYの代わりに、上下の余白を使用すると、画像が比率を失います。 –

+0

他のアイデア? –

+0

Bitmapfactoryで作成してxmlではなくコードでビットマップイメージを設定できますが、縦横比を失うことなく30X30ピクセルイメージをフルスクリーンで表示することはできません。 BitmapFactoeyを使用してビットマップイメージを作成し、Bitmap Create関数 から縮尺イメージを作成します。http://developer.android.com/reference/android/graphics/Bitmap.htmlおよびhttp://developer.android .com/reference/android/graphics/BitmapFactory.html – loks

-4

、私の見解では

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/red" 
    android:scaleType="centerCrop" 
    android:src="@drawable/green_square" /> 

</LinearLayout> 
+0

提案していただきありがとうございますが、このレイアウトはビュー全体を塗りつぶします。 ここに私が達成したいのは https://lh6.googleusercontent.com/-0UaWzbAvVkA/TwLdxtHZx6I/AAAAAAAAByA/YQh5Ein-2Fs/w500-h423-k/screen-shotです。jpg –

+0

適切な記述が不足しているため、投票が遅れました。それは単なるコードであり、答えではありません。 –

+0

@キングRV - 任意のアイデア? –

0

これを試してみてください、このImageView余分なレイアウトはバグです。私は同じことが起こった。その結果、私がgreen_squareに従いたいと思っていたテキストは、余分なレイアウトに従いました。だから、私がしたことは、画面の下部に相対的なテキストを指定することでした。そうすれば、テキストは余分なレイアウトを上回ります。私はそれが最善の解決策ではなかったと認めますが、それはgreen_squareとテキストの間に大きなスペースを持つよりもはるかによく見えます。

31
<ImageView 
     android:id="@+id/game" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:scaleType="centerCrop" 
     android:adjustViewBounds="true" 
     android:src="@drawable/ic_game" 
     /> 

これは私のために働く。アスペクト比を維持するための親と中央作物の全幅

+2

私のために働いた。承認された解決策である必要があります。ありがとう! –

+3

'centerCrop'はイメージを全幅に伸ばしますが、_view_は元の高さを維持しているので、上端と下端を切り取ってしまう可能性がありますが、イメージのアスペクト比は維持され、縮んだり伸ばしたりしません。 'adjustViewBounds'は、実際のクロッピングを避けるために高さを増やし、_view_にも画像のアスペクト比を保持させます。彼らは一緒に使用され、OPのために必要なことを行います。 – lilbyrdie

+0

は、 'fitXY'に 'centerCrop'を置き換えても、私は違いは気付きません。違いは何ですか? –

0

とても簡単です。幅fill_parentと高さwrap_contentを作成するだけです。ここで私はそれを考え出した。

<ImageView 
    android:id="@+id/game" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scaleType="centerCrop" 
    android:adjustViewBounds="true" 
    android:src="@drawable/ic_game" 
    /> 
関連する問題