wasup

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

IT/Android

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

wasupup 2021. 8. 3. 15:59
반응형

new project : hello04_RelativeLayoutTest

 

수정 : activity_main.xml

추가 : normal.xml

수정 : MainActivity.java

 


만들 화면


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/button"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:text="로그인화면"
        android:textSize="18dp"
        android:onClick="onButton1Clicked"
        />
</LinearLayout>

normal.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:background="@drawable/login_background">

    <TextView
        android:id="@+id/titleLabel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_alignParentTop="true"
        android:gravity="center_horizontal"
        android:text="식당 찾기 도우미"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="24dp"
        />

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:padding="10dp"
        android:background="#aaffffff"
        >

        <TextView
            android:id="@+id/usernameLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="4dp"
            android:text="userName"
            android:textColor="@color/purple_200"
            android:textSize="18dp"
            />

        <EditText
            android:id="@+id/usernameEntry"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/usernameLabel"
            android:layout_toEndOf="@+id/usernameLabel"
            />

        <TextView
            android:id="@+id/passwordLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="16dp"
            android:text="Password"
            android:textColor="@color/purple_200"
            android:textSize="18dp"
            android:layout_below="@+id/usernameLabel"
            />

        <EditText
            android:id="@+id/passwordEntry"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/usernameEntry"
            android:layout_toRightOf="@+id/passwordLabel"
            android:layout_toEndOf="@+id/passwordLabel"
            android:background="@color/purple_200"
            android:inputType="textPassword"
            android:layout_centerVertical="true"
            />

        <Button
            android:id="@+id/loginBtn"
            android:layout_width="130dp"
            android:layout_height="50dp"
            android:layout_below="@+id/passwordLabel"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="16dp"
            android:text="Login"
            android:drawableLeft="@drawable/ok_btn"
            android:drawablePadding="2dp"
            />

        <Button
            android:id="@+id/exitBtn"
            android:layout_width="130dp"
            android:layout_height="50dp"
            android:layout_below="@+id/passwordLabel"
            android:layout_alignParentRight="true"
            android:layout_marginRight="20dp"
            android:layout_marginTop="16dp"
            android:text="Exit"
            android:drawableLeft="@drawable/cancel_btn"
            android:drawablePadding="2dp"
            />

    </RelativeLayout>
</RelativeLayout>

MainActivity.java

package com.example.hello04_relativelayouttest;

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);
    }

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


}

RelativeLayout : 부모 컨테이너의 상대적 위치를 이용한 컨트롤을 배치하는 방법. 

성값

layout_gravity
layout_gravity 가운데 정렬 android:layout_gravity="center_horizontal"

 

layout_alignParent
layout_alignParentTop 부모컨테이너의 위쪽을 맞춤 layout_alignParentTop="true"
layout_alignParentBottom  부모컨테이너의 아래쪽을 맞춤 layout_alignParentBottom="true"
layout_alignParentLeft  부모 컨테이너의 왼쪽에 맞춤 layout_alignParentLeft ="true"
layout_alignParentRight  부모 컨테이너의 오른쪽에 맞춤 layout_alignParentRight ="true"

 

layout_center
layout_centerHorizontal 컨테이너 수평방향으로 중앙에 맞춤 layout_centerHorizontal="true"
layout_centerVertical  컨테이너 수직방향으로 중앙에 맞춤 layout_centerVertical="true"
layout_centerInParent  부모 컨테이너에서 수평/수직방향으로 중앙에 맞춤 layout_centerInParent="true"

 

layout
layout_above ~의 위에 배치  
layout_below ~의 밑에 배치  
layout_toLeftOf ~의 왼쪽에 배치  
layout_toRightOf ~의 오른쪽에 배치  

 

layout_align
layout_alignTop ~와 위쪽 변을 맞춤  
layout_alignBottom ~와 밑쪽 변을 맞춤  
layout_alignLeft ~와 왼쪽 변을 맞춤  
layout_alignRight ~와 오른쪽 변을 맞춤  

 

     
layout_alignBaseLine ~와 베이스라인을 맞춤  
layout_alignWithParentIfMissing 앵커가 발견되지 않을 때 부모를 앵커로 사용  


반응형

'IT > Android' 카테고리의 다른 글

Android) TableLayout  (0) 2021.08.04
Android) RelativeLayout(상대적 위치관계 2)  (0) 2021.08.04
Android) LinearLayout(리니어레이아웃)  (0) 2021.08.03
Android) 버튼 추가해보기  (0) 2021.08.03
Android) 새 화면 추가해보기  (0) 2021.08.03
Comments