wasup
Android) RelativeLayout(상대적 위치관계 2) 본문
반응형
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" : 정렬을 가운데로
반응형
'IT > Android' 카테고리의 다른 글
Android) 요소배치, 클릭시 이미지 변경 (0) | 2021.08.04 |
---|---|
Android) TableLayout (0) | 2021.08.04 |
Android) RelativeLayout(상대적 위치관계) (0) | 2021.08.03 |
Android) LinearLayout(리니어레이아웃) (0) | 2021.08.03 |
Android) 버튼 추가해보기 (0) | 2021.08.03 |
Comments