android开发,实现两个Activity之间图片拖拽效果
时间: 2023-11-28 21:48:52 浏览: 86
Android图片拖拽效果代码.zip
实现两个Activity之间图片拖拽效果,需要使用Android的拖拽功能。以下是实现步骤:
1.在布局文件中添加一个ImageView,并设置其可拖拽属性:
```xml
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:contentDescription="@string/app_name"
android:tag="image_draggable"/>
```
注意:一定要设置imageView的tag属性,否则无法拖拽。
2.在Activity中注册DragListener和TouchListener:
```java
ImageView imageView = findViewById(R.id.imageView);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
// 开始拖拽
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
return true;
} else {
return false;
}
}
});
imageView.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View view, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// 当拖拽开始时,该方法会被调用
break;
case DragEvent.ACTION_DRAG_ENTERED:
// 当拖拽的View进入目标View范围内时,该方法会被调用
break;
case DragEvent.ACTION_DRAG_LOCATION:
// 当拖拽的View在目标View范围内移动时,该方法会被调用
break;
case DragEvent.ACTION_DRAG_EXITED:
// 当拖拽的View离开目标View范围时,该方法会被调用
break;
case DragEvent.ACTION_DROP:
// 当拖拽的View在目标View范围内释放时,该方法会被调用
// 获取拖拽的数据
ClipData.Item item = event.getClipData().getItemAt(0);
String dragData = item.getText().toString();
// 在这里处理拖拽的数据
break;
case DragEvent.ACTION_DRAG_ENDED:
// 当拖拽结束时,该方法会被调用
break;
default:
break;
}
return true;
}
});
```
3.在另一个Activity中实现onDragListener并接受拖拽的数据:
```java
imageView.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View view, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DROP:
// 当拖拽的View在目标View范围内释放时,该方法会被调用
// 获取拖拽的数据
ClipData.Item item = event.getClipData().getItemAt(0);
String dragData = item.getText().toString();
// 在这里处理拖拽的数据
break;
default:
break;
}
return true;
}
});
```
这样就可以在两个Activity之间实现图片拖拽效果了。
阅读全文