끌어서 놓기

끌어서 놓기 지원을 추가하면 Surface Duo에서 지원하는 다양한 입력 형식을 모두 사용하는 뛰어난 사용자 환경이 제공됩니다.

이 샘플은 Android 끌어서 놓기 지침에 따라 Android 앱에서 끌어서 놓기를 구현하는 방법을 보여줍니다.

sample app UI using drag-and-drop

키 값

끌어서 놓기 기능을 사용하면 사용자가 앱의 여러 부분 간에 또는 두 화면에서 서로 다른 앱 간에 데이터를 쉽게 공유할 수 있습니다.

이 패턴을 활용할 수 있는 앱 유형

  • 텍스트 또는 이미지가 포함된 앱

자세한 내용은 이중 화면 디바이스 소개끌어서 놓기 섹션을 참조하세요.

샘플 사용해 보기

GitHub에서 끌어서 놓기 샘플을 다운로드하세요.

소스 코드 개요

다음 코드 조각은 끌어서 놓기를 구현하는 주요 단계를 보여줍니다.

  1. 놓을 보기에 dragListener를 연결합니다.

    View.setOnDragListener();
    
  2. onDrag()에서 ACTION_DROP 구현

    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
            case DragEvent.ACTION_DROP:
                return true;
        }
    }
    
  3. DragEvent에서 URI 잡기

    DragEvent.getClipData().getItemAt().getUri();
    
  4. 이 URI에 대한 권한 요청

    requestDragAndDropPermissions(DragEvent);
    
  5. ContentProvider를 쿼리하여 놓은 항목 페치

    File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null))
    Actual file :  ContentResolver.openFile(uri)