android studio无法拖拽,在android studio中无法拖放一个简单的imageView

我正在尝试在android studio中创建一个简单的拖放图像。我可以让图像拖动屏幕,一旦我释放它就消失。在控制台中,我收到一个“报告丢弃结果:false”

这是我的代码:

ImageView mImageView;

String mString;

private android.widget.RelativeLayout.LayoutParams mLayoutParams;

mImageView.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);

View.DragShadowBuilder myShadow = new View.DragShadowBuilder(mImageView);

v.startDrag(dragData, myShadow, null, 0);

return true;

}

});

mImageView.setOnDragListener(new View.OnDragListener() {

@Override

public boolean onDrag(View v, DragEvent event) {

switch(event.getAction()) {

case DragEvent.ACTION_DRAG_STARTED:

mLayoutParams = (RelativeLayout.LayoutParams)v.getLayoutParams();

Log.d(mString, "Action is DragEvent.ACTION_DRAG_STARTED");

// Do nothing

break;

case DragEvent.ACTION_DRAG_ENTERED:

Log.d(mString, "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(mString, "Action is DragEvent.ACTION_DRAG_EXITED");

x_cord = (int) event.getX();

y_cord = (int) event.getY();

mLayoutParams.leftMargin = x_cord;

mLayoutParams.topMargin = y_cord;

v.setLayoutParams(mLayoutParams);

break;

case DragEvent.ACTION_DRAG_LOCATION :

Log.d(mString, "Action is DragEvent.ACTION_DRAG_LOCATION");

x_cord = (int) event.getX();

y_cord = (int) event.getY();

break;

case DragEvent.ACTION_DRAG_ENDED :

Log.d(mString, "Action is DragEvent.ACTION_DRAG_ENDED");

// Do nothing

break;

case DragEvent.ACTION_DROP:

Log.d(mString, "ACTION_DROP event");

// Do nothing

break;

default: break;

}

return true;

}

});

mImageView.setOnTouchListener(new View.OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

ClipData data = ClipData.newPlainText("", "");

View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(mImageView);

mImageView.startDrag(data, shadowBuilder, mImageView, 0);

mImageView.setVisibility(View.INVISIBLE);

return true;

} else {

return false;

}

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值