안드로이드 개발 질문/답변
(글 수 45,052)
많은 분들의 도움으로
flipper를 구현하였습니다.
현재
(버튼인텐트)
activity1 -> activity2(Flipper)
(activity2)
flipper
|
->
imageview1
imageview2
imageview3
이렇게 1,2,3 번이 순서대로 플립됩니다.
현재는 1->2->3->1 이런순으로 무한 반복됩니다.
이에 1번 imageview에서 왼쪽에서 오른쪽으로 터치시 다시 1번 activity로 전환하려 하고
3번 imageview에선 플립을 멈추려 합니다.
그래서 제어문을 사용하여 아래 코딩을 완성하였으나.....
안됩니다.... 제어문이 어디가 틀렸는지.. 한 3시간 찾아봤는데..ㅠㅠ 수정하고요..
아.. 못찾겠네요... 어디가 잘못됬는지..ㅠㅠ 알수 있을까요? 부탁드립니다.
(아래 코드는 Flipper부분입니다.)
@Override
public boolean onTouch(View v, MotionEvent event) {
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 )
{
// 왼쪽 방향 에니메이션 지정
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
// 다음 view 보여줌
flipper.showNext();
}
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();
}
// 1번 activity로 귀환
else if(flipper.getCurrentView().getId() == R.id.imageView1)
{
if(xAtUp > xAtDown)
{
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_out));
this.finish();
}
}
//3번 imageview 플립 중단
else if (flipper.getCurrentView().getId() == R.id.imageView3)
{
if(xAtUp < xAtDown)
{
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
flipper.stopFlipping();
}
}
}
return true;
}
flipper를 구현하였습니다.
현재
(버튼인텐트)
activity1 -> activity2(Flipper)
(activity2)
flipper
|
->
imageview1
imageview2
imageview3
이렇게 1,2,3 번이 순서대로 플립됩니다.
현재는 1->2->3->1 이런순으로 무한 반복됩니다.
이에 1번 imageview에서 왼쪽에서 오른쪽으로 터치시 다시 1번 activity로 전환하려 하고
3번 imageview에선 플립을 멈추려 합니다.
그래서 제어문을 사용하여 아래 코딩을 완성하였으나.....
안됩니다.... 제어문이 어디가 틀렸는지.. 한 3시간 찾아봤는데..ㅠㅠ 수정하고요..
아.. 못찾겠네요... 어디가 잘못됬는지..ㅠㅠ 알수 있을까요? 부탁드립니다.
(아래 코드는 Flipper부분입니다.)
@Override
public boolean onTouch(View v, MotionEvent event) {
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 )
{
// 왼쪽 방향 에니메이션 지정
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
// 다음 view 보여줌
flipper.showNext();
}
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();
}
// 1번 activity로 귀환
else if(flipper.getCurrentView().getId() == R.id.imageView1)
{
if(xAtUp > xAtDown)
{
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_out));
this.finish();
}
}
//3번 imageview 플립 중단
else if (flipper.getCurrentView().getId() == R.id.imageView3)
{
if(xAtUp < xAtDown)
{
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
flipper.stopFlipping();
}
}
}
return true;
}