리소스때문에 이미뷰 3개를 돌려가면서 차례차례 보여지도록 구성하고 있는중인데

앞으로 가기는 무리없이 구현하였습니다.

하지만 뒤로가기는 구현에서 막히게 되네요..

imgview[??].setImageResource(???)

요부분을 어떻게 해줘야 되는지 잘 모르겠습니다.

조언이나 도움 부탁드려요 소스는 아래와 같습니다.


ViewFlipper flipper;


// 터치 이벤트 발생 지점의 x좌표 저장

float xAtDown;

float xAtUp;

int n;

ImageView[] img;

int[] views;

int imgadd, cnt, cntp;


/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

img = new ImageView[3];

n = 0;

cnt = 0;

flipper = (ViewFlipper) findViewById(R.id.viewFlipper);

imgadd = MyViewFlipper.this.getResources().getIdentifier("p01_bg",

"drawable", MyViewFlipper.this.getPackageName());

img[0] = (ImageView) findViewById(R.id.img1);

img[1] = (ImageView) findViewById(R.id.img2);

img[2] = (ImageView) findViewById(R.id.img3);

img[0].setImageResource(imgadd);

imgadd = imgadd + 1;

img[1].setImageResource(imgadd);

imgadd = imgadd + 1;

img[2].setImageResource(imgadd);

imgadd = imgadd + 1;


flipper.setOnTouchListener(this);


}


// View.OnTouchListener의 abstract method

// flipper 터지 이벤트 리스너

@Override

public boolean onTouch(View v, MotionEvent event) {

// 터치 이벤트가 일어난 뷰가 ViewFlipper가 아니면 return

if (v != flipper)

return false;


if (event.getAction() == MotionEvent.ACTION_DOWN) {

xAtDown = event.getX(); // 터치 시작지점 x좌표 저장

} else if (event.getAction() == MotionEvent.ACTION_UP) {

xAtUp = event.getX(); // 터치 끝난지점 x좌표 저장


if (xAtUp < xAtDown ) {

// 왼쪽 방향 에니메이션 지정

if (imgadd != 0) {

// Log.w(xAtUp+"",xAtDown+"");

flipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_in));

flipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_out));

flipper.showNext();


n = n + 1;

if (n >= 2) {

AddView();

}

}

}


else if (xAtUp > xAtDown) {

// 오른쪽 방향 에니메이션 지정

flipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_in));

flipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_out));


// 전 view 보여줌


flipper.showPrevious();

AddPrevView();

}

}

return true;


}


private void AddPrevView() {

// TODO Auto-generated method stub

imgadd = imgadd + 1;


if (cnt == 0) {

cntp = 2;

} else if (cnt == 1) {

cntp = 0;

} else if (cnt == 2) {

cntp = 1;

}


cnt = cnt + 1;

if (cnt >= 3) {

cnt = 0;

}

img[cnt].setImageResource(imgadd - 2);

}


private void AddView() {

imgadd = imgadd + 1;

if (cnt >= 3) {

cnt = 0;

}

img[cnt].setImageResource(imgadd);

cnt = cnt + 1;

// Log.w("cnt Now ::", cnt + "");

}

}