안드로이드 드래그 예제

By Dave Sanasack, on Aug, 02 2019

@Override 공용 부울 onLongClick(보기 v) { // 보기 개체의 태그 ClipData.Item 항목 = 새 ClipData.Item((CharSequence) v.getTag()에서 새 ClipData.항목을 만듭니다. 이미 생성된 항목입니다. 이렇게 하면 // ClipData 내에서 새 ClipDescription 개체가 생성되고 MIME 형식 항목을 “텍스트/일반” 문자열[] mimeType = {ClipDescription.MIMETYPE_TEXT_PLAIN}로 설정합니다. ClipData 데이터 = 새 클립데이터(v.getTag().toString(), 마임유형, 항목); 드래그 섀도우 빌더를 인스턴스화합니다. View.DragShadowBuilder 드래그섀도우 = 새 보기.DragShadowBuilder(v); 드래그 v.startDrag (데이터 // 데이터를 드래그 할 , dragshadow // 드래그 그림자, v // 드래그 앤 드랍 작업에 대한 로컬 데이터 , 0 // 플래그는 현재 사용하지 않기 때문에 0으로 설정됨); true를 반환합니다. } 드롭 영역으로 사용되는 OnDragListener가 있는 뷰는 setOnDragListener를 통해 할당된 OnDragListener를 가져옵니다. 이 DragEvent 개체의 문자열 표현을 반환합니다. 다음 예제에서는 View.setOnLongClickListener(), View.setOnTouchListener()와 View.OnDragEventListener()를 사용하여 간단한 드래그 앤 드롭의 기능을 보여 줍니다. 안드로이드는 sDK 버전 11 이후 드래그 앤 드롭 액션을 지원합니다. 소스 컨테이너에서 뷰 구성 요소를 드래그하여 다른 컨테이너(뷰 구성 요소)로 놓을 수 있습니다.

이 예제에서는 android에서 드래그 앤 드롭 액션을 구현하는 방법을 보여 줄 것입니다. Android 시스템은 드래그 앤 드롭 프레임워크를 제공하여 사용자가 특히 현재 레이아웃 내에서 한 보기에서 다른 보기로 데이터를 이동할 수 있도록 합니다. 많은 앱이 시스템이 조달하는 그래픽 드래그 앤 드롭 제스처를 활용한다는 점을 언급하는 것이 좋습니다. 프레임워크에는 끌어서 놓기 기능을 지원하는 다음 세 가지 구성 요소가 포함되어 있습니다. 기본적으로 사용자가 화면을 터치하는 위치 아래를 중심으로 인수로 전달하는 뷰와 모양이 같은 드래그 그림자가 표시됩니다. 또한 startDrag 메서드에 드래그 섀도우 빌더의 인스턴스를 전달합니다. 이 개체는 끌기 작업에 사용되는 그림을 지정합니다. 예를 들어 끌기 작업 중에 뷰의 이미지를 표시하는 뷰를 직접 전달할 수 있습니다. 그런 다음 View.DragShadowBuilder(보기)를 사용하여 이동 중인 뷰 오브젝트에 대한 드래그 그림자를 만들어야 합니다. View.DragShadowBuilder는 뷰 인수가 전달된 크기와 동일한 기본 드래그 그림자를 만듭니다. 드래그 섀도우를 사용자 지정하려면 요구 사항에 따라 View.DragShadowBuilder 기능을 확장해야 합니다. 위의 코드에서 알 수 있듯이 드래그 데이터에 대해 “대상 삭제” 뷰에 삭제된 데이터가 포함된 ClipData 또는 ClipData.Item을 사용할 수 있습니다.