在网格视图上实现滑动手势

2023-12-27

我想实现滑动手势GridView。 例如:我有 3*3GridView有 9 个图像,当我用手指滑动到图像时,我想删除滑动的图像 如果你有任何想法,有人可以帮助我吗?

Thanks


这是对我有用的例子

public class GameActivity extends AppCompatActivity {

    private GestureDetectorCompat detector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

        detector = new GestureDetectorCompat(this, new MyGestureListener());

        GridView board = (GridView) findViewById(R.id.board);
        board.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                detector.onTouchEvent(event);
                return false;
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        detector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }

    class MyGestureListener extends GestureDetector.SimpleOnGestureListener {

        private static final int SWIPE_THRESHOLD = 100;
        private static final int SWIPE_VELOCITY_THRESHOLD = 100;

        @Override
        public boolean onDown(MotionEvent event) {
            return true;
        }

        @Override
        public boolean onFling(MotionEvent event1, MotionEvent event2,
                               float velocityX, float velocityY) {

            float diffY = event2.getY() - event1.getY();
            float diffX = event2.getX() - event1.getX();
            if (Math.abs(diffX) > Math.abs(diffY)) {
                if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffX > 0) {
                        onSwipeRight();
                    } else {
                        onSwipeLeft();
                    }
                }
            } else {
                if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffY > 0) {
                        onSwipeBottom();
                    } else {
                        onSwipeTop();
                    }
                }
            }
            return true;
        }        
    }

    private void onSwipeLeft() {

    }

    private void onSwipeRight() {

    }

    private void onSwipeTop() {

    }

    private void onSwipeBottom() {

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在网格视图上实现滑动手势 的相关文章

随机推荐

  • 如何替换数组的元素?

    如何替换数组中的元素 a 1 2 3 4 5 我需要将 5 替换为 11 22 33 44 flatten so that a现在变成 a 1 2 3 4 11 22 33 44 不确定您是否想要替换特定值 但这有效 a 1 2 3 4 5
  • 如何获取 crtdbg.h 文件?

    我在用MinGW http en wikipedia org wiki MinGW GCC Eclipse http en wikipedia org wiki Eclipse 28software 29在 Windows 上 我遇到了这个
  • 如何悬停固定元素直到到达某个点

    我有一个 div 需要将其固定在屏幕底部 直到滚动到某个点并停在那里并停留 如果用户开始向后滚动 在经过同一点后再次将其固定 关于如何实现这一点有什么想法吗 编辑 这是我当前的代码 不起作用 window scroll function i
  • SQl:从文本文件更新表

    这是我必须做的 我有一个包含 3 列的文本文件 PID X Y 现在我的数据库中有两个表 Table 1包含 4 列 UID PID X Y Table 2包含多列 必需的列是UID X Y 我需要更新Table 2具有相应的 X 和 Y
  • 如何用正则表达式模式替换文本并在替换文本中集成计数器?

    function parse string counter 0 string preg replace b b si span class b counter 1 span string 1 counter return string 我正
  • ggplot2 中两种不同颜色美学映射的不同调色板

    我的问题非常类似于this https stackoverflow com questions 15363035 ggplot2 how to specify multiple fill colors for points that are
  • D3 旭日。如何设置不同的环\层宽度

    帮助 我已经搜索了很长时间 但没有找到任何与此相关的信息 我基本上希望能够设置 D3 sunburst 中每个图层的大小 像素 相对 我不介意 我猜这可以在数据或基于数字或父母的代码中完成 我有一个旭日纹 希望内环占据大部分空间 而外环只是
  • 存储过程 azure Cosmos DB 返回空集合

    我尝试使用 Azure 文档中的示例 sp 创建代码创建存储过程 但无法获取集合详细信息 它总是返回 null 存储过程 SAMPLE STORED PROCEDURE function sample prefix var collecti
  • 拖动 JPanel

    我在尝试拖动 JPanel 时遇到问题 如果我纯粹在 MouseDragged 中将其实现为 public void mouseDragged MouseEvent me me getSource setLocation me getX m
  • MongoDB 字段数组搜索(C#,如何?)

    请告诉我如何通过字段数组进行搜索 我有一些类型的字段List
  • 我应该修改 String 的原型吗?

    我本来打算在 javascript 中创建一个修剪函数 但由于我不想重新发明轮子 所以我在谷歌上搜索了这个方法 我找到了这个链接http www somacon com p355 php http www somacon com p355
  • 比较两个对象(不包括一些属性)的最快方法?

    我有一个网站 用户将数据上传到其中 我只想更新属性已更改的数据 因此 我正在比较 2 个相同类型的对象的更改 并且我需要排除一些属性 例如 ModifiedOn 日期 这是迄今为止我使用反射的代码 private bool hasChang
  • 无法在Jboss EAP 7.0服务器中创建oracle数据源

    我需要在JBOSS EAP 7 0服务器中创建oracle数据源 我部署了ojdbc6 jar从 JBOSS 管理 CLI 命令行界面 使用以下命令 deploy
  • 计算时差超过 24 小时

    我遇到一个问题 我试图计算以秒为单位的时间差 然后在报告 访问报告 中我将总结这些秒并将其格式化为 hh nn ss 但是 我收集两个字段之间的时间差的计算字段有时会超过 24 小时 从而消除了时间差 我正在使用 DateDiff 函数 D
  • 有关 EF Code First Fluent API、TPH 和外键的困难

    我的数据库中有两个表 一种叫做Users 另一个称为Widgets The Widgets表代表我的代码模型中的 3 个实体 其中一个实体 Widget 是其他两个实体的父类 WidgetTypeA and WidgetTypeB Both
  • g++ 编译和链接选项

    也许是天真的问题 g 是否有单独的编译和链接选项列表 我的意思是一个显示哪些选项用于编译 哪些选项用于链接的列表 gcc 手册说这些是链接选项 http gcc gnu org onlinedocs gcc Link Options htm
  • 如何在长时间运行的功能期间更新 UI(文本字段)?

    我知道这个问题可能没有意义 而且我很难想出一种方法来解释它 所以我将展示一段代码来提供帮助 我在 Visual Studio Express 2010 上使用 Winforms private void button1 object sen
  • 用于可变长度记录存储和仅在主键上搜索的磁盘查找的数据结构/算法

    我正在寻找一种适用于基于大型块的设备 例如机械硬盘驱动器 的算法 数据结构 该结构针对插入 获取 更新和删除进行了优化 其中搜索始终使用数据的 id 进行 并且数据在何处任何 ID 的字段都有可变长度 B Tree 似乎是一种常用的结构 但
  • 如何通过身份验证从 Cloud Scheduler 调用 Cloud Function

    我到处都看了 似乎人们要么使用 pubsub 应用程序引擎 http 要么使用没有身份验证的 http 没有太多人展示他们通过使用 oidc 令牌进行身份验证来访问谷歌功能的工作 我查了一下 无法从 GCP Scheduler 调用 Goo
  • 在网格视图上实现滑动手势

    我想实现滑动手势GridView 例如 我有 3 3GridView有 9 个图像 当我用手指滑动到图像时 我想删除滑动的图像 如果你有任何想法 有人可以帮助我吗 Thanks 这是对我有用的例子 public class GameActi