Android - Page move ( 한 Activity에서 페이지 이동효과 주기 )
Android 2011.10.31 15:14Intent를 이용하여서 두개이상의 엑티비티화면 이동을 전에 살펴보았습니다.
그 때는 자바 파일 하나당 하나의 Activity를 설정하여 그 Activity간의 이동으로 화면이동을 해보았습니다.
오늘 살펴볼 내용은 한 자바파일의 한 Activity에서 화면페이지를 넘기는 듯한 효과를 주는 것입니다.
말그대로 한 Activity안에 여러가지 내용을 적지만 적은 내용중에 몇개는 숨기고 있다가
특정 이벤트가 일어나면 보았던 내용은 숨기고 다른 내용을 보여주는 식으로 페이지 효과를 주는 것입니다.
한 자바파일 한 Activity내에서 여러가지 내용을 다루기때문에 소스 코딩 내용이 늘어나고 복잡해집니다.
상황에 따라 이용하시는 것이 좋을 듯 합니다.
어떤식으로 할거냐면 한 엑티비티 안에 여러개의 레이아웃을 설정해놓고 그 레이아웃들에 버튼을 하나씩 연결
그래서 해당 버튼을 누를 때 해당 레이아웃을 보여주는 식으로 할 것입니다.
레이아웃을 3개 더 추가하였다면 버튼도 그에 맞게 3개를 추가하여 하나씩 대웅하게 이벤트를 걸어주는 것이지요.
레이아웃1 = > 버튼 1
레이아웃2 = > 버튼 2
레이아웃3 = > 버튼 3
이런식이 되겠네요 ㅎ
이 방법에서 사용할 때 레이웃에 속성 중에
setVisibility() 값을 사용하게 됩니다.
레이아웃을 보여주느냐 안보여주느냐를 해당 속성값을 이용하는데요
GONE 을 주면 숨기고 VISIBLE 을 주면 보여지게 되는 것을 이용합니다.
그러면 소스코딩을 하면서 살펴보겠습니다.
프로젝트 생성
Project name : ExamScreen
Build Target : Android 2.1
Package name : jsh.exam.screen
Create Activity : main
Min SDK Version : 7
src
main.java
package jsh.exam.change;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
//버튼 클릭 이벤트처리 사용
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
//클릭이벤트 인터페이스 사용
public class main extends Activity implements OnClickListener {
/** Called when the activity is first created. */
// 레이아웃을 선언하기 위한 레이아웃 변수 선언
LinearLayout aaa, bbb, ccc;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 선언한 변수에 생성한 레이아웃 설정
aaa = (LinearLayout) findViewById(R.id.aaa);
bbb = (LinearLayout) findViewById(R.id.bbb);
ccc = (LinearLayout) findViewById(R.id.ccc);
// 버튼 선언
Button bt1 = (Button) findViewById(R.id.button1);
Button bt2 = (Button) findViewById(R.id.button2);
Button bt3 = (Button) findViewById(R.id.button3);
// 버튼 텍스트 지정
bt1.setText("첫번째");
bt2.setText("두번째");
bt3.setText("세번째");
// 버튼 클릭 이벤트 처리
bt1.setOnClickListener(this);
bt2.setOnClickListener(this);
bt3.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// 버튼이 클릭 됬을 때 이벤트 처리
switch (arg0.getId()) {
case R.id.button1:
// 버튼 1이 눌렸을 때 1개의 해당 레이아웃을 보이게 나머지는 숨기게
aaa.setVisibility(View.VISIBLE);
bbb.setVisibility(View.GONE);
ccc.setVisibility(View.GONE);
break;
case R.id.button2:
// 버튼 2이 눌렸을 때 1개의 해당 레이아웃을 보이게 나머지는 숨기게
aaa.setVisibility(View.GONE);
bbb.setVisibility(View.VISIBLE);
ccc.setVisibility(View.GONE);
break;
case R.id.button3:
// 버튼 3이 눌렸을 때 1개의 해당 레이아웃을 보이게 나머지는 숨기게
aaa.setVisibility(View.GONE);
bbb.setVisibility(View.GONE);
ccc.setVisibility(View.VISIBLE);
break;
}
}
}
res
main.xml
레이아웃 3개의 3개의 버튼을 생성
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:orientation="horizontal">
<Button
android:text="Button"
android:id="@+id/button1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"></Button>
<Button
android:text="Button"
android:id="@+id/button2"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"></Button>
<Button
android:text="Button"
android:id="@+id/button3"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"></Button>
</LinearLayout>
<LinearLayout
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/aaa"
android:layout_width="fill_parent"
android:background="#ffffff"></LinearLayout>
<LinearLayout
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/bbb"
android:layout_width="fill_parent"
android:background="#ff22ff">
</LinearLayout>
<LinearLayout
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/ccc"
android:layout_width="fill_parent"
android:background="#ffff22"></LinearLayout>
></LinearLayout>
실행결과
'Android' 카테고리의 다른 글
Android - ViewFlipper ( 뷰플리퍼, 페이지넘기기 ) (0) | 2011.11.09 |
---|---|
Android - Custom Listview ( 커스텀 리스트뷰, 리스트뷰 꾸미기 ) (8) | 2011.11.07 |
Android - Page move ( 한 Activity에서 페이지 이동효과 주기 ) (4) | 2011.10.31 |
Android - Video play (온라인상 동영상 재생) (0) | 2011.10.20 |
Android - VideoView ( 동영상첨부파일 재생하기 ) (0) | 2011.10.20 |
Android - Option Menu ( 옵션메뉴 하단메뉴 ) (0) | 2011.10.19 |