猴子写代码 2015-09-28 12:46 采纳率: 0%
浏览 1693

网易新闻客户端中listview中的item,长按会出现画圆的背景效果,不知道是怎么做的

图片我弄不上来,大牛们下一个网易新闻客户端试试看,我做了demo不太理想

我自己做的demo是在oneventtouch()中invalidate();在onDraw()中
以手点击的坐标为圆点画圆,半径不断的增加,但是网易中的item一开始是在手点击的坐标为圆点,之后圆点在不断的移动,到最后画满item的时候圆点正好到中间。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 09:46
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题的答案其实很简单,你只需要将你的onTouchEvent()方法中的逻辑稍微改动一下即可。以下是修改后的代码:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 检查事件是否是触摸事件
        if (event.getAction() != MotionEvent.ACTION_DOWN) return false;
    
        // 获取触摸点坐标
        int x = (int) event.getX();
        int y = (int) event.getY();
    
        // 将触摸点坐标设置为圆心
        mTouchPoint.set(x, y);
    
        invalidate(); // 更新布局
        return true;
    }
    

    在这个版本的代码中,我们首先检查事件是否为触摸事件,如果是,则获取触摸点的坐标。然后,我们将触摸点的坐标设为主动点。最后,我们在onDraw()方法中绘制一个圆形,并在其内部添加一个填充的颜色,从而实现你在网易新闻客户端中看到的效果。

    注意:这个解决方案依赖于你已经实现了onDraw()invalidate()的方法。如果你还没有实现这些方法,请确保它们已经被正确地实现。

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境