2013-03-03 11 views
6

私は3つのイメージビューを含む水平線形レイアウトを持っています。各画像ビューには200x200ピクセルの同じ画像が含まれています。ここに私のレイアウトXMLは次のとおりです。左から3番目の画像がするのに十分な不動産がないので、私は仮定リサイズされた方法LinearLayout ImageViewすべてのイメージの幅を合わせる

linear layout test screenshot

お知らせ:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/image200" /> 

    </LinearLayout> 

</RelativeLayout> 

そして、ここでは、それは次のようになります3×200ピクセルの幅の画像を含みます。

私がむしろ起こるのは、最後の画像だけを縮小するのではなく、3つすべての画像が画面全体に収まるように均等にサイズ変更されます。 3つの画像すべてを均等に合わせるようにレイアウトを設定するにはどうすればよいですか?

はあなたに

UPDATEありがとうございました - ここに私の設定を変更した後、物事がどのように見えるかです:画像ビュー周囲ボーダーはまだ200ピクセルの高いことが

updates

注意してください。なぜこうなった?

答えて

11

セットの幅と高さmatch_parentにimageviews用とするためにlayout_weight = 1を設定しますすべての画像ビュー。また、属性を設定してくださいandroid:scaleType="fitXY"

+0

ありがとうございました! –

+0

layoutHeightがラップコンテンツモードであるため、アンドロイド:scaleType = "fitXY"は意味がありません – Guian

+0

私は上記のように機能しましたが、画像の幅をスケーリングして高さではないため、 。 fitXYを削除すると、両方の寸法のサイズが変更されます。ありがとう! –

1

あなたの三つの画像0dp

の幅を作り、それらを1

のlayout_weightを追加;)

<ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:src="@drawable/image200" /> 
1

@JanTacciあなたのフォローアップの質問については、「画像が収縮しても実際のレイアウトの高さはまだ200pxですが、どうしてですか?

私は同じ問題を持っていたし、各ImageViewのにこのプロパティを追加することによって、それを修正:

android:adjustViewBounds="true" 
3

これは私のために完璧に働いた:0dpに設定

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

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

    <ImageView 
     android:adjustViewBounds="true" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"/> 

</LinearLayout> 

レイアウト幅、レイアウト幅写真に入ったものです。そして、LinearLayoutのレイアウト幅はマッチする親です。だから、それは全体の幅を取るだろうし、画像のレイアウトの幅ごとに、彼らは重量の割合でスペースを取る。

+0

あなたの答えを説明してください! – Mazz

+1

@Mazz:簡単な説明を追加しました。何かがまだ混乱しているかどうか教えてください。 – blackjack

関連する問題