Android View拖拽startDragAndDrop,Kotlin
Kotlin
import android.os.Bundle
import android.util.Log
import android.view.DragEvent
import android.view.View
import android.view.View.OnDragListener
import android.view.View.OnLongClickListener
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private val TAG = "fly"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val imageView = findViewById<ImageView>(R.id.image)
imageView.setOnLongClickListener(object : OnLongClickListener {
//这里选择长按事件触发拖拽
override fun onLongClick(v: View?): Boolean {
Log.d(TAG, "onLongClick")
val builder = View.DragShadowBuilder(imageView)
imageView.startDragAndDrop(
null,
builder,
null,
0
)
return true //true,触发系统其他组件继续处理拖拽接下的动作。
}
})
imageView.setOnDragListener(object : OnDragListener {
override fun onDrag(v: View?, event: DragEvent?): Boolean {
when (event?.action) {
DragEvent.ACTION_DRAG_STARTED -> Log.d(TAG, "DragEvent.ACTION_DRAG_STARTED")
DragEvent.ACTION_DRAG_ENTERED -> Log.d(TAG, "DragEvent.ACTION_DRAG_ENTERED")
DragEvent.ACTION_DRAG_ENDED -> Log.d(TAG, "DragEvent.ACTION_DRAG_ENDED")
}
return true //true,已正确处理onDrag事件。
}
})
}
}
长按ImageView以后,拖拽ImageView,ImageView随手指移动:
Android ViewDragHelper:控制子View垂直方向拖曳不能越界(3)-CSDN博客Android ViewDragHelper:控制子View垂直方向拖曳不能越界(3)附录文章1简单介绍了Android ViewDragHelper的使用,附录文章2介绍了如何控制ViewDragHelper在水平方向上拖曳不会被拖曳出边界,以及那些子view可以被拖曳,那些子view不能被拖曳。但是还有一些遗漏问题尚未解决:垂直方向的拖曳。本文再附录文章2的基础加以改进,控制子https://blog.csdn.net/zhangphil/article/details/51180017Android手势缩放图片以及图片黏贴在手指随手势移动_android 图片缩放跟随手指的例子-CSDN博客一个Android手势缩放图片的工具类;同时,此类还实现另外一个功能:当手指按在触屏上移动时候,图片"黏贴"在手指上随手指移动而整体移动。具体使用方法可以是这样:先new一个此类的实例,然后在ImageView的方法setOnTouchListener(new ImageViewOnMultiTouchListener());例如:ImageViewOnMultiTouchListen_android 图片缩放跟随手指的例子https://blog.csdn.net/zhangphil/article/details/43965701