공부하는 대학교 학생인데요.
졸업작품으로 어플을 제작중인데 그리뷰와 이미지뷰를 이용해서 Drag and Drop 기능을 구현하고 싶은데요
정보가 너무 없어서 이리 글을 작성합니다.
일단 이미지뷰에 이미지를 보여주는것과 GridView에 이미지를 추가시켜 놓은 상태입니다.
이 GridView에서 드래그 기능을 사용해서 이미지 뷰에 원하는 위치에 놔두고 싶은데 도저히 어찌해야하는지를
모르겠어서요 좋은 답변 부탁드립니다…
우선 데브톡은 카카오 API와 SDK에 관련된 이슈들에 대하여 서로 소통하며 도움을 주고 받는 곳이기 때문에 해당 질문은 이 곳에는 어울리지 않는 것 같습니다. StackOverflow나 다른 안드로이드 커뮤니티에 글을 올리시는 것이 나을 것 같습니다.
아래와 같은 라이브러리들에서 힌트를 얻는 것을 추천드립니다.
https://github.com/askerov/DynamicGrid
https://github.com/thquinn/DraggableGridView
제가 소스 코드를 다 보진 않았지만 기본적으로 위의 라이브러리들은 Drang and Drop을 통해 순서 재배치를 하는 기능을 제공할 것이기 때문에 @wovj200님이 원하시는 기능 구현이 바로 가능하진 않을 것입니다. 그리고 졸업작품이라면 직접 해당 기능을 구현해야 할수도 있구요… 그렇다면 아래 파일을 보시면서 어떤 식으로 구현을 해야할지 방향을 잡으시면 될 것 같습니다.
기본적으로 드래그앤드랍을 하기 위해선 뷰의 터치이벤트를 사용하여야 합니다. 유저가 어떤 아이템을 클릭하거나 롱클릭할 경우에 해당 아이템을 선택해야 하고 손가락을 터치하면서 움직일 경우 해당 아이템을 이동시켜야 하고 손가락을 뗄 경우에는 아이템을 놓아야하기 때문이죠. 위 라이브러리에서는 onTouchEvent에서 이벤트의 타입이 무엇이냐에 따라 (ACTION_DOWN, ACTION_MOVE 등등) 각각 그 이벤트에 맞는 행동들을 수행함으로써 Drag and Drop을 구현합니다.
ACTION_DOWN에서 손가락이 누르고 있는 포인트의 좌표를 가져오고 ACTION_MOVE에서 그 좌표에 있는 뷰의 포지션을 변경하고 ACTION_UP에서는 최종으로 손가락이 가리키고 있는 이미지뷰에 선택된 아이템의 이미지를 로딩한다던지 하는 것이죠. 우선 이런 방식으로 시작을 하시면 될 것 같습니다.