끌어서 놓기
끌어서 놓기 지원을 추가하면 Surface Duo에서 지원하는 다양한 입력 형식을 모두 사용하는 뛰어난 사용자 환경이 제공됩니다.
이 샘플은 Android 끌어서 놓기 지침에 따라 Android 앱에서 끌어서 놓기를 구현하는 방법을 보여줍니다.
키 값
끌어서 놓기 기능을 사용하면 사용자가 앱의 여러 부분 간에 또는 두 화면에서 서로 다른 앱 간에 데이터를 쉽게 공유할 수 있습니다.
이 패턴을 활용할 수 있는 앱 유형
- 텍스트 또는 이미지가 포함된 앱
자세한 내용은 이중 화면 디바이스 소개의 끌어서 놓기 섹션을 참조하세요.
샘플 사용해 보기
GitHub에서 끌어서 놓기 샘플을 다운로드하세요.
- Kotlin - Drag-and-drop 샘플
- Java - Drag-and-drop 샘플
소스 코드 개요
다음 코드 조각은 끌어서 놓기를 구현하는 주요 단계를 보여줍니다.
놓을 보기에 dragListener를 연결합니다.
View.setOnDragListener();
onDrag()에서 ACTION_DROP 구현
public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: return true; } }
DragEvent에서 URI 잡기
DragEvent.getClipData().getItemAt().getUri();
이 URI에 대한 권한 요청
requestDragAndDropPermissions(DragEvent);
ContentProvider를 쿼리하여 놓은 항목 페치
File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null)) Actual file : ContentResolver.openFile(uri)