본문 바로가기

Android

프레임레이아웃(FrameLayout)

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/FrameLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >

 

    <Button

        android:id="@+id/btn"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="Push Button" />

 

    <ImageView

        android:id="@+id/img"

        android:layout_width="209dp"

        android:layout_height="86dp"

        android:src="@drawable/image1" />

 

</FrameLayout>

 

 

package com.example.testex07;

 

import android.os.Bundle;

 

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

 

public class MainActivity extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

       

        Button btn = (Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {

               

                @Override

                public void onClick(View v) {

                     // TODO Auto-generated method stub

                    

                     ImageView img = (ImageView)findViewById(R.id.img);

                     if(img.getVisibility()==View.VISIBLE){

                           img.setVisibility(View.INVISIBLE);

                     } else {

                           img.setVisibility(View.VISIBLE);

                     }

                }

           });

    }

 

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

   

}

 


FrameLayout


차일드를배치하는규칙없이모든차일드는프레임의좌상단에나타나며, 차일드가두개이상일때는추가된순서대로겹쳐서표시된다.


•ViewGroup의서브클래스로addView, removeView등의메서드로실행중에차일드를추가, 삭제할수있으며, getChildCount메서드로차일드의개수를조사할수있다.

•필요한차일드만표시하고겹쳐진차일드는숨겨둘수있다.

•차일드의보임상태는개별뷰의visibility속성을사용하여조정하며실행중에도조건에따라뷰의보임상태를변경할수있다.


'Android' 카테고리의 다른 글

레이아웃 관리 - 중첩  (0) 2013.03.27
테이블 레이아웃 (Table Layout)  (0) 2013.03.27
RelativeLayout  (0) 2013.03.27
리니어 레이아웃 - 베이스정렬(baselineAligned)  (0) 2013.03.26
버튼과 에디트  (0) 2013.03.26