已解决
Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)
来自网友在路上 185885提问 提问时间:2023-10-26 17:41:34阅读次数: 85
最佳答案 问答题库858位专家为你答疑解惑
Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)
import android.graphics.Canvas
import android.graphics.Point
import android.graphics.drawable.ColorDrawable
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
import androidx.core.content.ContextCompatclass 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 = MyDragShadowBuilder(imageView)imageView.startDragAndDrop(null,builder,null,0)return 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}})}class MyDragShadowBuilder(private var imageView: ImageView) : View.DragShadowBuilder() {//自定义绘制一个拖放时显示的阴影色块private val shadow = ColorDrawable(ContextCompat.getColor(imageView.context,android.R.color.holo_green_light))override fun onProvideShadowMetrics(outShadowSize: Point?, outShadowTouchPoint: Point?) {val width: Int = imageView.width * 2val height: Int = imageView.height * 2shadow.setBounds(0, 0, width, height)//拖动图像的宽和高outShadowSize?.set(width, height)//手指在拖动图像的位置 中点outShadowTouchPoint?.set(width / 2, height / 2)}override fun onDrawShadow(canvas: Canvas) {shadow.draw(canvas)}}
}
Android View拖拽startDragAndDrop,Kotlin-CSDN博客一个Android手势缩放图片的工具类;Android DynamicGrid:拖曳交换位置Android DynamicGrid是一个第三方开源项目,DynamicGrid在github上的项目主页是:https://github.com/askerov/DynamicGrid它实现在一个网格布局内,拖曳任意子view实现动态的交换位置,这很类似手机的桌面,手机桌面的图标,均可自由拖曳实现摆放位置的交换,如动图所示:_android 拖拽交换位置。但是还有一些遗漏问题尚未解决:垂直方向的拖曳。https://blog.csdn.net/zhangphil/article/details/133994955
查看全文
99%的人还看了
相似问题
- vsto word 获取目录起始页和结束页,如目录起始位置为2、结束位置为3,返回2和3
- IP地理位置定位技术:保护网络安全的新利器
- WSL2安装ubuntu及修改安装位置,设置Ubuntu开机启动链接ssh服务
- ROS navigation栅格地图原点位置如何确定?
- 35. 搜索插入位置 --力扣 --JAVA
- 【实用技巧】更改ArduinoIDE默认库文件位置,解放系统盘,将Arduino15中的库文件移动到其他磁盘
- 76基于matlab的免疫算法求解配送中心选址问题,根据配送地址确定最佳配送中心地址位置。
- 小程序判断是否授权位置信息和手动授权
- 计算机毕业设计 基于SpringBoot的车辆网位置信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
- 基于DOTween插件实现金币飞行到指定位置功能
猜你感兴趣
版权申明
本文"Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)":http://eshow365.cn/6-25288-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 睿趣科技:抖音小店在哪里选品
- 下一篇: SOCKS5代理与网络安全:如何安全地进行爬虫操作