1. 레이아웃 종류
레이아웃 | 설명 |
제약 레이아웃 |
- 제약 조건 기반 모델 |
리니어 레이아웃 |
- 박스 모델 |
상대 레이아웃 |
- 규칙 기반 모델 |
프레임 레이아웃 |
- 싱글 모델 |
테이블 레이아웃 |
- 격자(Grid) 모델 |
※ 화면을 만들기 위해서는 xml 파일 1개 + java 파일 1개로 이루어져야 함
2. Constraint Layout
- 연결선이 반드시 필요 (연결한 곳과 margin 부여 가능) : 레이아웃 또는 다른 뷰와 연결
- 자석 아이콘 : 연결선을 자동으로 만들어주는 역할
- 가이드라인 : 가이드라인에 버튼 등을 붙여서 정렬 가능
3. Linear Layout
- android:orientation 속성 필수
- layout_gravity : 레이아웃 내 뷰들의 정렬
- gravity : 뷰 (e.g. 버튼) 내 텍스트, 즉 선택한 뷰 안의 요소 정렬
- layout_weight : 남은 공간을 가중치만큼 차지함 (layout_width = 0dp 와 함께 사용)
4. Relative Layout
- 레이아웃에는 별도 속성 필요 없음
- 버튼 등 뷰 예시 : align 속성 필요
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="1dp"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/button"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginTop="0dp"
android:layout_above="@+id/button3"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Button" />
</RelativeLayout>
5. Frame Layout
- Constraint Layout 안에 Frame Layout 설정 가능 : Frame Layout의 dp 정해줘야 함
- drawable에 이미지 2개 추가 > Frame Layout 하위에 설정 > 버튼 클릭할 때마다 이미지 변경 되도록
public class MainActivity extends AppCompatActivity {
ImageView imageView;
ImageView imageView2;
int index = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
imageView2 = (ImageView) findViewById(R.id.imageView2);
}
public void onButton1Clicked(View v) {
index += 1;
if (index > 1) {
index = 0;
}
if (index == 0) {
imageView.setVisibility(View.VISIBLE);
imageView2.setVisibility(View.INVISIBLE);
} else if (index == 1) {
imageView.setVisibility(View.INVISIBLE);
imageView2.setVisibility(View.VISIBLE);
}
}
}
'Android' 카테고리의 다른 글
[Android] 안드로이드 : 상태 드로어블 만들기 (0) | 2019.11.26 |
---|---|
[Android] 안드로이드 : 주요 위젯 (0) | 2019.11.26 |
[Android] 안드로이드 : 뷰의 속성 (0) | 2019.11.25 |
[Android] 안드로이드 : 버튼 클릭 시 웹사이트로 이동하기 (0) | 2019.11.25 |
[Android] 안드로이드 : 버튼 클릭 시 토스트 메시지 띄우기 (0) | 2019.11.25 |
댓글