마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ViewFlipper 구현하는 방법이요ㅠㅠ!

0 추천
아래코드는 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;
 }

}

 

zzoni (140 포인트) 님이 2015년 5월 14일 질문
에러가 발생하는 경우라면 로그캣에 나오는 에러로그를 함께 올려야 빠른 해결책을 찾을 수 있습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...