2014-12-02 3 views
0

Я хочу переместить изображение из одного места в другое.NullPointException при перетаскивании ImageView

Теперь изображение удерживается ImageView, и я рисую перетаскивание с OnDragListener но вернуть исключение нулевой точки и применение получило сбой есть ли другой способ реализации перетаскивания и любое решения для этого проблема.

Вот мой основной код деятельности:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity_main); 

    ima = (ImageView)findViewById(R.id.iv_logo); 

    ima.setTag(IMAGEVIEW_TAG); 

    ima.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      ClipData.Item item = new ClipData.Item((CharSequence)v.getTag()); 

      String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN}; 
      ClipData dragData = new ClipData(v.getTag().toString(), 
        mimeTypes, item); 

      // Instantiates the drag shadow builder. 
      View.DragShadowBuilder myShadow = new DragShadowBuilder(ima); 

      // Starts the drag 
      v.startDrag(dragData, // the data to be dragged 
        myShadow, // the drag shadow builder 
        null,  // no need to use local data 
        0   // flags (not currently used, set to 0) 
      ); 
      return true; 
     } 
    }); 
} 

Это мой Перенесите код:

ima.setOnDragListener(new OnDragListener(){ 
    @Override 
    public boolean onDrag(View v, DragEvent event){ 
     switch(event.getAction()) 
     { 
      case DragEvent.ACTION_DRAG_STARTED: 
       layoutParams = (RelativeLayout.LayoutParams) 
         v.getLayoutParams(); 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_STARTED"); 
       break; 

      case DragEvent.ACTION_DRAG_ENTERED: 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENTERED"); 
       int x_cord = (int) event.getX(); 
       int y_cord = (int) event.getY(); 
       break; 

      case DragEvent.ACTION_DRAG_EXITED : 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_EXITED"); 
       x_cord = (int) event.getX(); 
       y_cord = (int) event.getY(); 
       layoutParams.leftMargin = x_cord; 
       layoutParams.topMargin = y_cord; 
       v.setLayoutParams(layoutParams); 
       break; 

      case DragEvent.ACTION_DRAG_LOCATION : 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_LOCATION"); 
       x_cord = (int) event.getX(); 
       y_cord = (int) event.getY(); 
       break; 

      case DragEvent.ACTION_DRAG_ENDED : 

       break; 

      case DragEvent.ACTION_DROP: 

       break; 

      default: break; 
     } 
     return true; 
    } 
}); 
+2

Пожалуйста, ваши ' logcat' –

ответ

1

Я забыл это в своей деятельности:

super.onCreate(savedInstanceState); 
Смежные вопросы