아래코드는 ViewFlipper로 시작할 첫번째 페이지이구, 같은 카테고리의 뷰가 4개 더 있습니다. (총 5개) anim 폴더를 res 폴더에 삽입해 놓았구요,
appear_from_left/ appear_from_right / appear_to_left / appear_to_right
slide_from_left/ slide_from_right / slide_to_left / slide_to_right 등이 갖추어져 있어요.
현재 포트폴리오 시작하는 아래 페이지를 터치하면 중지되었다고 하면서 어플이 재실행 되거나 상위 카테고리로 넘어오는데 뭐가 잘못되었나요ㅠㅠ
package test.a;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ViewFlipper;
import test.a.R;
public class portfolio_1 extends Activity implements OnTouchListener {
LinearLayout lian_1, lian_2, lian_3, lian_4, lian_5, lian_6;
ImageView upper_bar_2;
ImageView upper_bar_3;
private ViewFlipper m_viewFlipper;
private int m_nPreTouchPosX=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.portfolio_1);
// 영어사전 (상단 바 중앙)
upper_bar_2 = (ImageView) findViewById(R.id.upper_bar_2);
upper_bar_2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// showDialog(Dialog_Distance_8);
Intent i = new Intent(portfolio_1.this, MainActivity.class);
startActivity(i);
}
});
// 설정 (상단 바 우측)
upper_bar_3 = (ImageView) findViewById(R.id.upper_bar_3);
upper_bar_3.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// showDialog(Dialog_Distance_8);
Intent i = new Intent(portfolio_1.this, setup_1.class);
startActivity(i);
}
});
m_viewFlipper = (ViewFlipper) findViewById(R.id.lian_1);
m_viewFlipper.setOnTouchListener(this);
// ViewFlipper에 서브 레이아웃 추가
LinearLayout lian_2 = (LinearLayout) View.inflate(this,
R.id.lian_2, null);
m_viewFlipper.addView(lian_3);
m_viewFlipper.addView(lian_4);
m_viewFlipper.addView(lian_5);
m_viewFlipper.addView(lian_6);
}
private void MoveNextView() {
m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.appear_from_right));
m_viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.disappear_to_left));
m_viewFlipper.showNext();
}
private void MovewPreviousView() {
m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.appear_from_left));
m_viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.disappear_to_right));
m_viewFlipper.showPrevious();
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
m_nPreTouchPosX = (int) event.getX();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
int nTouchPosX = (int) event.getX();
if (nTouchPosX < m_nPreTouchPosX) {
MoveNextView();
} else if (nTouchPosX > m_nPreTouchPosX) {
MovewPreviousView();
}
m_nPreTouchPosX = nTouchPosX;
}
return true;
}
}