27262


Android Studioでアプリを作っています。  
画像を複数枚並べて表示させたいのですが、現在１枚しか画面に表示されません。  
今、２枚並べて表示させる処理を行っているのですが、どうして１枚しか表示されないのでしょうか？  
activity_main.xmlには

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            android:id="@+id/textView" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bigfig"
           android:src="@drawable/bigfig" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/feminine"
            android:src="@drawable/feminine" />
    
    
    </RelativeLayout>　　
    
[/code]

のように記載し、  
MainActivity.java には

[code]

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ImageView imageView1 = (ImageView)findViewById(R.id.feminine);
            ImageView imageView2 = (ImageView)findViewById(R.id.bigfig);
        }
    
    }
    
[/code]

と記載しました。  
最終的には７枚画像を画面に表示させたいのですが、どのようなメソッドを使えば表示させられますか？


CC BY-SA 3.0
2016-07-02T01:41:32.973
27261
2016-07-02T10:50:28.027
2016-07-02T09:55:48.790
14754
14754
question
android java android-studio
Android app で画像を複数枚並べて表示したい


RelativeLayoutは表示位置を指定しない場合、子要素はすべて左上に配置されます。  
画像が1枚しか表示されていないのは、画像が重なってしまい見えていないだけです。  
おそらく最後のfeminineの画像だけが表示されている状態だと思いますが、その下にbigfigの画像とHello
World!の文字列も存在しています（子要素は最初の要素から順番に描画されるためです）。

対策は2つあります。

### RelativeLayoutをLinearLayoutに変更する

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            android:id="@+id/textView" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bigfig"
            android:src="@drawable/bigfig" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/feminine"
            android:src="@drawable/feminine" />
    
    
    </LinearLayout>
    
[/code]

LinearLayoutを使う場合、orientationで並べる方向を指定する必要があります。  
この場合は縦に並べる指定になります。

### 子要素の表示位置を指定する

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            android:id="@+id/textView" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bigfig"
            android:layout_below="@id/textView"
            android:src="@drawable/bigfig" />
    
        <ImageView
            android:scaleType="centerCrop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/feminine"
            android:layout_below="@id/bigfig"
            android:src="@drawable/feminine" />
    
    </RelativeLayout>
    
[/code]

layout_belowで指定したIDを持つ要素の下に表示されます。  
他にも、指定したIDの要素の右に配置したり、親要素の中心に配置したりといった指定方法も可能です。


CC BY-SA 3.0
2016-07-02T02:53:09.560
27262
2016-07-02T10:50:28.027
2016-07-02T10:50:28.027
5337
9498
27261
answer