wasup

Android) RelativeLayout(상대적 위치관계 2) 본문

IT/Android

Android) RelativeLayout(상대적 위치관계 2)

wasupup 2021. 8. 4. 11:49
반응형

new project : hello05_RelativeLayout

상대적 레이아웃을 이용해 전체를 채운 뒤 하단에 버튼을 추가

 

수정 : activity_main.xml : 뷰

추가 : overlay.xml :뷰

수정 : MainActivity.java : 모델, 컨트롤러

추가 : centerfill.xml : 뷰


만들화면


activity_main.xml

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


    <Button
        android:id="@+id/button01"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="로그인 화면"
        android:textSize="18dp"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"
        android:onClick="onButtonClicked01"
        />

    <Button
        android:id="@+id/button02"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="중첩되는 뷰"
        android:textSize="18dp"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"
        android:onClick="onButtonClicked02"
        />
</LinearLayout>

overlay.xml

<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"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="전체 영역"
        android:textColor="#001560"
        android:textSize="24dp"
        android:gravity="center"
        android:background="#FFFFFF"
        />

    <Button
        android:id="@+id/btnBottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="하단버튼"
        android:textColor="#F6F6F6"
        android:textSize="24dp"
        />
<!--
android:layout_centerInParent="true" : 상대 레이아웃의 속성을 화면 가운데 배치
android:layout_alignParentBottom="true" : 상대 레이아웃의 속성을 화면의 아래쪽에 배치
-->
</RelativeLayout>

MainActivity.java

package com.example.hello05_relativelayout;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //두 번째 버튼을 눌렀을 때
    //overlay.xml에 정의된 화면 에이아웃을 보여줌.
    public void onButtonClicked02(View v){
        setContentView(R.layout.overlay);//overlay.xml View
        
    }

}//class-end

 

이어서 작업

수정 : activity_main.xml : 뷰

추가 : overlay.xml :뷰

수정 : MainActivity.java : 모델, 컨트롤러

추가 : centerfill.xml : 뷰


만들화면


activity_main.xml

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


    <Button
        android:id="@+id/button01"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="로그인 화면"
        android:textSize="18dp"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"
        android:onClick="onButtonClicked01"
        />

    <Button
        android:id="@+id/button02"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="중첩되는 뷰"
        android:textSize="18dp"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"
        android:onClick="onButtonClicked02"
        />

    <Button
        android:id="@+id/button03"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="가운데를 꽉 채운!"
        android:textSize="18dp"
        android:textStyle="bold"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"
        android:onClick="onButtonClicked03"
        />
</LinearLayout>

centerfill.xml

<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"
    >

    <Button
        android:id="@+id/btnTop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="상단버튼"

        android:layout_alignParentTop="true"
        android:textColor="#D8C43A"
        android:textSize="24dp"
        />

    <Button
        android:id="@+id/btnBottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="하단버튼"

        android:layout_alignParentBottom="true"
        android:textColor="#D8C43A"
        android:textSize="24dp"
        />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:layout_below="@+id/btnTop"
        android:layout_above="@+id/btnBottom"
        android:gravity="center"
        
        android:text="전체영역"
        android:textSize="24dp"
        android:textColor="@color/white"
        android:background="#4CAF50"
        />
</RelativeLayout>

MainActivity.java

package com.example.hello05_relativelayout;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //두 번째 버튼을 눌렀을 때
    //overlay.xml에 정의된 화면 에이아웃을 보여줌.
    public void onButtonClicked02(View v){
        setContentView(R.layout.overlay);//overlay.xml View
    }

    //세 번째 버튼을 눌렀을 때
    //overlay.xml에 정의된 화면 에이아웃을 보여줌.
    public void onButtonClicked03(View v){
        setContentView(R.layout.centerfill);//centerfill.xml View

    }

}//class-end

android:layout_centerInParent="true" : 상대 레이아웃의 속성을 화면 가운데 배치
android:layout_alignParentBottom="true" : 상대 레이아웃의 속성을 화면의 아래쪽에 배치

android:layout_alignParentTop="true" : 상대 레이아웃의 속성을 화면의 위쪽에 배치

 

 

android:layout_below="@+id/btnTop" : 상대 레이아웃의 속성을 위에 있는 버튼 아래쪽에 배치
android:layout_above="@+id/btnBottom" : 상대 레이아웃의 속성을 위에 있는 버튼 위쪽에 배치
android:gravity="center" : 정렬을 가운데로


반응형
Comments