728x90
728x170
- 프레임 레이아웃은 가장 기본적이고 단순한 레이아웃.
- 안드로이드에서는 복잡한 화면을 구성할 때 프레임 레이아웃이 가지고 있는 중첩(Overlay) 기능을 자주 사용.
- 프레임 레이아웃은 뷰를 하나 이상 추가할 경우에는 추가된 순서대로 차곡차곡 쌓이게 됨.
- 가장 먼저 추가한 뷰가 가장 아래쪽에 쌓이고 그 다음에 추가한 뷰는 그 위에 쌓이게 되는데 이렇게 되면 나중에 쌓인 뷰만 보이게 됨.
- 여러 개의 뷰를 서로 전환하면서 보고 싶을 때 사용할 수 있음.
- addView()나 removeView()와 같은 메소드를 이용해서 뷰를 추가하거나 삭제하고 동시에 뷰를 보이게 하거나 보이지 않게 함으로써 화면을 손쉽게 전환할 수 있음.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 |
<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="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Change Image"
android:onClick="onButton1Clicked"
/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/imageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dream01"
android:visibility="invisible"
/>
<ImageView
android:id="@+id/imageView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dream02"
android:visibility="visible"
/>
</FrameLayout>
</LinearLayout>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 |
package org.androidtown.ui.framelayout;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
ImageView imageView01;
ImageView imageView02;
int imageIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 첫번째 이미지 뷰
imageView01 = (ImageView) findViewById(R.id.imageView01);
// 두번째 이미지 뷰
imageView02 = (ImageView) findViewById(R.id.imageView02);
}
/**
* 이미지 바꾸기 버튼을 눌렀을 때
* @param v
*/
public void onButton1Clicked(View v) {
changeImage();
}
/**
* 현재 보고있는 이미지뷰가 아닌 다른 이미지뷰를 보이도록 하는 메소드
*/
private void changeImage() {
if (imageIndex == 0) {
imageView01.setVisibility(View.VISIBLE);
imageView02.setVisibility(View.INVISIBLE);
imageIndex = 1;
} else if (imageIndex == 1) {
imageView01.setVisibility(View.INVISIBLE);
imageView02.setVisibility(View.VISIBLE);
imageIndex = 0;
}
}
}
|
cs |
- 뷰플리퍼(ViewFlipper)와 뷰페이저(ViewPager)를 이용하면 한 화면에서 뷰의 전환이 쉬워짐.
출처 : Do It! 안드로이드 앱 프로그래밍 (정재곤 지음, 이지스퍼블리싱)
728x90
그리드형(광고전용)
'Programming > Android' 카테고리의 다른 글
위험 권한의 세부 정보 (0) | 2017.01.25 |
---|---|
수명주기 (0) | 2017.01.24 |
레이아웃 인플레이션 (0) | 2017.01.18 |
기본 위젯들 (0) | 2017.01.17 |
스크롤뷰 (0) | 2017.01.17 |
테이블 레이아웃 (0) | 2017.01.17 |
상대 레이아웃 (0) | 2017.01.17 |
리니어 레이아웃 (0) | 2017.01.16 |