터치 밀어내서 화면 전환 입니다(스마트폰 배경화면 화면이랑 비슷)
첨부파일 (구글에서 배포하는 파일)
xml파일은 res 폴더에 anim 폴더 생성후 파일을 붙여넣기 하면 됩니다
이미지 파일은 보는 폴더와 같이 하면 됩니다
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ViewFlipper android:id="@+id/flipper" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
package kr.android.flipper.touch; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.ViewFlipper; public class FlipperTouch extends Activity implements View.OnTouchListener { ViewFlipper flipper; // 터치 이벤트 발생 지점의 x좌표 저장 float down_x; float up_x; int[] imageItems; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageItems = new int[] { R.drawable.image01, R.drawable.image02, R.drawable.image03 }; flipper = (ViewFlipper) findViewById(R.id.flipper); for (int i : imageItems) { ImageView image = new ImageView(this); image.setImageResource(i); flipper.addView(image, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); } flipper.setOnTouchListener(this); } public boolean onTouch(View v, MotionEvent event) { // 터치 이벤트가 일어난 뷰가 ViewFlipper가 아니면 return if (v != flipper) return false; if (event.getAction() == MotionEvent.ACTION_DOWN) { // 터치 시작지점 x좌표 저장 down_x = event.getX(); } else if (event.getAction() == MotionEvent.ACTION_UP) { // 터치 끝난 지점 X좌표 저장 up_x = event.getX(); if (up_x < down_x) { // 터치 할때 왼쪽방향으로 진행 flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); flipper.showNext(); } else if (up_x > down_x) { // 터치할때 오른쪽 방향으로 진행 flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in)); flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out)); flipper.showPrevious(); } } return true; } }
'Android > 기본' 카테고리의 다른 글
Xml 가져오기 (날씨) (0) | 2012.04.28 |
---|---|
SQLite 연동하기 (1) | 2012.04.28 |
ListIcon (ListView에 아이콘,버튼) (0) | 2012.04.28 |
News Service 주기적으로 데이터 가지고 오기 (0) | 2012.04.28 |
SMSReceiver (BroadcastReceiver사용) (0) | 2012.04.28 |