2013-02-13 2 views
0

У меня есть класс, который реализует OnDragListener. Мне нужно проверить, какое изображение выпало в представлении. Расскажите, пожалуйста, как это сделать.Найти изображение, упавшее в поле зрения

private class ChoiceDragListener implements OnDragListener { 

    @Override 
    public boolean onDrag(View v, DragEvent event) { 
     switch (event.getAction()) { 
     case DragEvent.ACTION_DROP: 
      View view = (View) event.getLocalState(); 
      view.setVisibility(View.INVISIBLE); 
      ImageView dropTarget = (ImageView) v; 
      ImageView dropped = (ImageView) view; 
      dropTarget.setImageDrawable(dropped.getDrawable()); 
      break; 
     case DragEvent.ACTION_DRAG_ENDED: 
      //no action necessary 
      break; 
     default: 
      break; 
     } 
     return true; 
    } 
} 
+0

Вы можете объяснить вкратце? – Harshid

+0

У меня есть несколько изображений в макете. Мне нужно знать, какое изображение задрапировано и отображено в представлении. – user1822729

ответ

0

вы должны следовать некоторым шагом:

1) делают objcet из MyDragEventListener класса.

MyDragEventListener myDragEventListener = new MyDragEventListener(); 

2) использовали этот класс для целевого расположения.

view.setOnDragListener(myDragEventListener); 

3)

class MyDragEventListener implements View.OnDragListener { 
     @Override 
     public boolean onDrag(View v, DragEvent event) {    

       final int action = event.getAction();   
       switch(action) { 

       case DragEvent.ACTION_DRAG_STARTED: 
         if (event.getClipDescription() 
          .hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) 
         { 
         return true; //Accept 
         } 
         else{ 
         return false; //reject 
         } 

       case DragEvent.ACTION_DRAG_ENTERED: 
       return true; 

       case DragEvent.ACTION_DRAG_LOCATION: 
       return true; 

       case DragEvent.ACTION_DRAG_EXITED: 
       return true; 

      case DragEvent.ACTION_DROP: 
        ClipData.Item item = event.getClipData().getItemAt(0); 
        if(v == view){ 
          //put your logic here 
         } 
         return true; 

       case DragEvent.ACTION_DRAG_ENDED: 
        if (event.getResult()) 
        { 
        //forther any updation not require. 
        }      
        return true; 

       default: //unknown case 
        return false; 

       } 

      } 


     } 

импорт часть:

case DragEvent.ACTION_DROP: 
       ClipData.Item item = event.getClipData().getItemAt(0); 
       if(v == view){ 
         //put your logic here 
        } 
        return true; 

если вы запрашиваете то выразить свое мнение.

Смежные вопросы