wasup
Android) RelativeLayout(상대적 위치관계) 본문
반응형
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