在android中拖放到带有阴影的目标上后拖放回原始位置?

2024-03-15

onDrag 类:

private class ChoiceDragListener implements OnDragListener {

    @Override
    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            // no action necessary
            break;
        case DragEvent.ACTION_DRAG_ENTERED:
            // no action necessary
            break;
        case DragEvent.ACTION_DRAG_EXITED:
            // no action necessary
            break;
        case DragEvent.ACTION_DROP:
            // handle the dragged view being dropped over a drop view
            View view = (View) event.getLocalState();

            dropTarget = (RelativeLayout) v;

            dropped = (RelativeLayout) view;
            tagDropped = dropped.getTag().toString();

            Log.i("tagDropped", "" + tagDropped);
            tagDropTarget = dropTarget.getTag().toString();
            Log.i("tagDropTarget", "" + tagDropTarget);

            matchTag();

            break;
        case DragEvent.ACTION_DRAG_ENDED:
            // no action necessary
            break;
        default:
            break;
        }
        return true;
    }
}

ChoiceTouchListener 类:

private final class ChoiceTouchListener implements OnTouchListener {
    public boolean onTouch(View view, MotionEvent motionEvent) {
        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
            /*
             * Drag details: we only need default behavior - clip data could
             * be set to pass data as part of drag - shadow can be tailored
             */
            ClipData data = ClipData.newPlainText("", "");
            DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(
                    view);
            // start dragging the item touched
            view.startDrag(data, shadowBuilder, view, 0);
            return true;
        } else {
            return false;
        }
    }
}

现在我想将对象移动到其拖动的原始位置

我有这样的搜索但没有回答任何一个如果没有放在目标上,则使用 onDraglistener 动画拖放以返回到原始位置 https://stackoverflow.com/questions/17986044/drag-and-drop-with-ondraglistener-animate-to-go-back-to-original-position-if-not


首先获取拖动器控件和拖动接收器控件之间的距离:textview1是拖动器控件textview2是拖动接收器控件

//if text view2 is below textview one and text view 2 is on the right of text view one
int topMargin=textview2_top_margin - textview1_top_margin
int leftMargin=textview2_left_margin - textview1_left_margin

public void animation() {
  Animation animation = new TranslateAnimation(left_margin, 0, topMargin, 0);
  animation.setDuration(1000);
  controlToAnimate.startAnimation(animation);
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中拖放到带有阴影的目标上后拖放回原始位置? 的相关文章

  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • 如果第一个字符是 SQL 中的特定字符,如何删除它

    我目前有一张桌子Telephone它有如下条目 9073456789101 773456789101 0773456789101 我想要做的是只删除所有有 9 的条目开头的 9 但保留其他条目不变 任何帮助将不胜感激 虽然所有其他答案可能也
  • 仅使用代码保存networkD3桑基图

    我在 R 中创建了一个桑基图 使用networkD3包 我想使用代码保存为静态图像 而不是单击 导出 gt 另存为图像 我尝试过的当前代码 使用this https christophergandrud github io networkD
  • 您什么时候开始使用 HTML 5?

    所以 HTML 5 正如预期的那样被广泛宣传2022年准备就绪 http ishtml5readyyet com 这是一个很长的等待时间 而对准备情况的考验是 至少有两个浏览器能够完全通过 HTML 5 测试套件 显然 浏览器要通过此测试
  • Android 中的 Dom xml 解析

    我是android开发新手 我不知道如何从xml解析数据 所以请帮忙 这是我必须解析的 Xml
  • PerformFiltering() 期间发生 Android Realm 异常!

    当我使用 Spinner 时 该应用程序运行良好 但是 当我尝试使用 AutoComplete Textview 而不是 Spinner 时 我在其上键入内容时不会显示任何内容 任何帮助表示赞赏 Logcat 警告 08 23 14 01
  • 带有字符串的 String.raw 仅适用于不带括号的情况

    我知道您可以使用模板文字来提供方法的第一个参数 例如 const f x gt hello x f world returns hello world 所以我可以以某种方式理解为什么这段代码有效 String raw bla bla 但是
  • 创建无限循环

    我正在尝试创建一个无限循环 其中代码块将永远执行 我发现的所有循环文档都警告不要创建无限循环 但没有有效循环的示例 如果我有一段代码 puts foo puts bar sleep 300 我将如何永远运行这个块 loop do puts
  • Ruby on Rails,一种形式的两种模型

    我有两个非常相似的模型预处理和诊断 属于模型患者 class Pretreatment lt ActiveRecord Base belongs to patient attr accessible content end class Di
  • 设置 Asp:Chart 控件的动态大小

    我试图使我的图表宽度和高度动态化 但我无法让它工作 到目前为止我已经尝试过 我已将图表设置在 Asp Panel 内 并为面板提供了所需的百分比值
  • 在org-mode下,如何让代码块默认折叠?

    在 Emacs org mode 中 我如何指示 org mode 让 HTML 代码块默认折叠 那么当我打开一个 org 文件时它们会被折叠吗 org mode 提供了开箱即用的此功能 您可以通过自定义变量来全局设置它org hide b
  • ViewPagerIndicator中拦截触摸事件

    我正在使用杰克 沃顿的查看寻呼指示器 http viewpagerindicator com在我的 FragmentActivity 上 其中包含一个 viewpager 我在拦截 onTouch 事件时遇到困难 我知道 ViewPager
  • 如何向现有 Win32 C++ 项目添加 MFC 支持?

    我正在创建一个 C 应用程序 它使用 Qt 创建 GUI 但是 我需要使用依赖于 MFC 的第三方库 用于 CString 等 无论如何 是否可以将 MFC 添加到我的应用程序中以允许我使用这个库 或者我需要自己重写它 I saw 这个问题
  • C/C++ 中嵌套结构的尾随填充 - 有必要吗?

    这更多的是一个理论问题 我熟悉填充和尾随填充的工作原理 struct myStruct uint32 t x char p char c myStruct layout will compile to x 4 Bytes padding 4
  • Android 底部关闭全屏视图被分流到屏幕外

    我有一个屏幕 其底部工具栏使用以下样式对齐
  • 在 React 中导入新库时,Jest 遇到意外标记

    screenshot of error 1 screenshot of error 2 应用程序 test js import React from react import ReactDOM from react dom import A
  • C# 中数组的子集

    如果我有一个包含 12 个元素的数组 并且我想要一个新数组 其中删除第一个和第 12 个元素 例如 如果我的数组如下所示 a b c d e f g h i j k l 我想对其进行转换或创建一个如下所示的新数组 b c d e f g h
  • Java UDP中如何获取实际数据包大小`byte[]`数组

    这是我上一个问题的后续问题 Java UDP发送 接收数据包一一接收 https stackoverflow com questions 21866382 java udp send receive packet one by one 正如
  • Python SKLearn:逻辑回归概率

    我正在使用 Python SKLearn 模块来执行逻辑回归 我有一个因变量向量Y 从 M 类中的 1 个中获取值 和自变量矩阵X 有 N 个特征 我的代码是 LR LogisticRegression LR fit X np resize
  • 在调用 setState() 之前直接改变状态可以吗?

    我正在使用轻量级 ORM 将我的 React 应用程序与外部服务连接 此包返回模型的对象并允许您直接对它们执行操作 虽然这真的很棒 但我很难弄清楚如何将这些对象包含在state并仍然遵循 React 的 永远不要直接修改状态 租户 如果我有
  • 在android中拖放到带有阴影的目标上后拖放回原始位置?

    onDrag 类 private class ChoiceDragListener implements OnDragListener Override public boolean onDrag View v DragEvent even