在android4.0中实现View的拖动效果

本文介绍如何在Android 4.0中实现View的拖动效果。通过定义拖动源组件和Drop目标组件,利用OnTouchListener或LongClickListener监听事件,创建ClipData传递数据,并设置DragShadowBuilder来定制拖动阴影。
摘要由CSDN通过智能技术生成

实现方法:

首先需要定义一个支持拖动的源组件和一个作为Drop区域的目标组件。

在支持拖动的组件中注册OnTouchListener 或LongClickListener监听事件,构建一个ClipData对象,这个对象用来从源组件向Drop区域传递数据

使用DragShadowBuilder指定拖动操作的阴影效果

拖动的组件主要代码部分如下:

// Assign the touch listener to your view which you want to move
findViewById(R.id.myimage1).setOnTouchListener(new MyTouchListener());

// This defines your touch listener
private final class MyTouchListener implements OnTouchListener {
  public boolean onTouch(View view, MotionEvent motionEvent) {
    if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
      ClipData data = ClipData.newPlainText("", "");
      DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
      view.startDrag(data, shadowBuilder, view, 0);
      view.setVisibility(View.INVISIBLE);
      return true;
    } else {
    return false;
    }
  }
} 


接下来在定义为Drop区域的组件中注册OnDragListener监听事件

主要代码:

findViewById(R.id.bottomright).setOnDragListener(new MyDragListener());

class MyDragListener implements OnDragListener {
  Drawable enterShape = getResources().getDrawable(R.drawable.shape_droptarget);
  Drawable normalShape = getResources().getDrawable(R.drawable.shape);
  
  @Override
  public boolean onDrag(View v, DragEvent event) {
    int action = event.getAction();
    switch (event.getAction()) {
    case DragEvent.ACTION_DRAG_STARTED:
    //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值