2011-08-12 6 views
11

レイアウトを設定するのに手伝ってもらえますか?ImageView(とそのsrc)をレイアウト幅に合わせて、その高さを比例させます

画像の幅はレイアウトの幅よりも小さくなっている:私は私が欲しいものを説明するために赤にImageViewの背景を入れている

:私は、私が探しているものを達成していません。私は最初の画像(私は手動でPhotoshopでそれを変更しました)にアスペクト比に達するまで画像を比例して伸ばしたいと思いますが、width = "fill_parent"に設定すると結果が2番目の画像になり、 fill_parent "の場合、結果は3番目のイメージです。

ノー成功

どのように私は最初のオプションを達成することができてScaleTypeと結合しようとしましたか?おかげ

enter image description here

答えて

2

はfit_centerあなたImageViewのタグに属性を使用します。 ImageView


するためのXMLで

<ImageView ... android:scaleType="fitCenter" .. /> 
+0

お返事ありがとうございます。あなたはandroid:scaleType = "fitCenter"という意味ですか?このオプションと両方のディメンションをfill_parentに設定すると、画像3(中央の画像)と似ています。例えば、height = "wrap_content"の場合、結果は中央にdrawableを持つ画像2です(水平方向) – Addev

+0

両方のパラメータに "wrap_content"を使用し、LinearLayoutを使用している場合はandroid:layout_weight = "1"を追加します –

14

使用android:adjustViewBounds=trueのattrは、この質問はImageViewのクラスを拡張して、ここで解決されます。

Android ImageView adjusting parent's height and fitting width


私はサンプルを作成しました。わたしにはできる。ここにxmlレイアウトファイルがあります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView android:src="@drawable/hydrangeas" 
     android:layout_height="wrap_content" android:id="@+id/imageView1" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:background="@android:color/white" 
     android:layout_width="wrap_content"/> 

</LinearLayout> 

fitCenterでも動作します。スナップショットを見てください。
With centerInside and adjustViewBounds="true"

+0

adjustViewBoundsの仕組みがわからないけど、それを使って目標に達することはありません。もっとやり方を説明できますか? – Addev

+0

scaletype = centerInsideを使ってみてください。 – Ronnie

+1

こんにちは、それは私の場合でも動作していません。小さな画像は親ビューに合うように拡大されませんが、枠の境界は残されます。 –

関連する問題