Android dragandpush

来源:互联网 发布:好看的网络剧2017 编辑:程序博客网 时间:2024/05/12 14:14

实现图片拖拉效果

代码如下

@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ima = (ImageView) findViewById(R.id.iv_logo);ima.setTag(IMAGEVIEW_TAG);ima.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic 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 dragv.startDrag(dragData, // the data to be draggedmyShadow, // the drag shadow buildernull, // no need to use local data0 // flags (not currently used, set to 0));return true;}});ima.setOnDragListener(new OnDragListener() {@Overridepublic 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");// Do nothingbreak;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:Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENDED");// Do nothingbreak;case DragEvent.ACTION_DROP:Log.d(msg, "ACTION_DROP event");// Do nothingbreak;default:break;}return true;}});}


0 0