리소스때문에 이미뷰 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 + "");
}
}



