별의 공부 블로그 🧑🏻‍💻
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
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖