2010-04-15 5 views
3

갤러리보기에 4 개의 이미지가 있습니다. 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 스 와이프하면 갤러리보기가 모든 이미지를 이동합니다. 즉 첫 번째 이미지에서 왼쪽에서 오른쪽으로 스 와이프하면 네 개의 이미지로 모두 이동합니다.Android에서 한 번 스 와이프하여 갤러리보기를 다음 이미지로 이동 하시겠습니까?

내가 원하는 것은 스 와이프 때 다음 이미지로 이동해야한다는 것입니다. 누군가가 어떻게 이것이 가능한지 알려주실 수 있습니까?

곧 답장을 보내주십시오.

감사 선일은

+0

당신이 기본 갤러리를 확장 할 수 있었나요이 댓글을 사용하려고 날뛰는 개념과 ViewFlipper 개념을 사용합니까? 그렇다면 당신이 작성한 onFling 오버라이드를 게시 할 수 있습니까? – TheDeuce

+0

중복 된 http://stackoverflow.com/questions/4311854/how-can-i-limit-fling-in-android-gallery-to-just-one-item-per-fling –

답변

3

당신은 갤러리를 사용하지 않고이를 구현할 수 있습니다 귀하의 레이아웃에 이미지 뷰를 넣고 GestureListener를 사용 와이프를 감지합니다. 왼쪽 또는 오른쪽 스 와이프에서 이미지 목록을 적절한 방향으로 순환하고 ImageView에서 이미지를 설정합니다. 이미지를 설정하면 적절한 슬라이드 왼쪽 또는 오른쪽 슬라이드 애니메이션을 재생할 수 있습니다.

+0

기본 동작을 조작 한 것으로 나타났습니다. 갤러리 위젯 (widget) 이것은 단지 대안 일뿐입니다. – Samuh

4

Gallery까지 확장되는 CustomGallery 클래스를 만들어이를 수행했습니다. 그 다음에 onFling 방법을 Gallery으로 겹쳐 씁니다. onFling 메서드 내에서 false를 반환하면됩니다. 그러면 onFling이 호출 될 때 갤러리가 다음 이미지로 이동합니다.

+0

멋지고 쉽습니다. 고마워. – ernazm

+0

이것의 단점은 매끈함을 느끼지 않는다는 것입니다. 매끄럽게 움직이면 애니메이션은 있지만 사진은 다음 사진으로 돌아가는 대신 현재 사진으로 돌아갑니다. –

0

은 ...

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) 
{ 
    if (Math.abs(e1.getY() - e2.getY()) > 50) 
     return false; 

    if(e1.getX() - e2.getX() > 10 && Math.abs(velocityX) > 10) 
    { 
     vf.showNext(); 
    } 
    else if (e2.getX() - e1.getX() > 10 && Math.abs(velocityX) > 10) 
    { 
     vf.showPrevious(); 
    } 

    return false; 
} 
관련 문제