OnTouchEvent 中仔细选择文本

发布于 2025-01-02 19:29:51 字数 1093 浏览 1 评论 0原文

我写了一个代码来选择文本的一部分,但是我找不到开始和结束的确切点。

我的代码:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        final int action = event.getAction();

        switch (action) {
        case MotionEvent.ACTION_DOWN:
        {
            lastX = (int) event.getX();
            lastY = (int) event.getY();
            break;
        }
        case MotionEvent.ACTION_UP:
        {
                int currentX = (int) event.getX();
                int currentY = (int) event.getY();
                int xDistance = Math.abs(currentX - lastX);
                int yDistance = Math.abs(currentY - lastY);

            final Spannable WordtoSpan = (Spannable) mText;

                int line = mLayout.getLineForVertical(yDistance);
                int offset = mLayout.getOffsetForHorizontal(line, xDistance);
                WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), line,
offset, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
                txtContent.setText(WordtoSpan);

                break;
        }
        }
    }

请帮助我,我真的需要它。

I wrote a code for select a part of text but But I can't find the exact point of beginning and ending.

My code:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        final int action = event.getAction();

        switch (action) {
        case MotionEvent.ACTION_DOWN:
        {
            lastX = (int) event.getX();
            lastY = (int) event.getY();
            break;
        }
        case MotionEvent.ACTION_UP:
        {
                int currentX = (int) event.getX();
                int currentY = (int) event.getY();
                int xDistance = Math.abs(currentX - lastX);
                int yDistance = Math.abs(currentY - lastY);

            final Spannable WordtoSpan = (Spannable) mText;

                int line = mLayout.getLineForVertical(yDistance);
                int offset = mLayout.getOffsetForHorizontal(line, xDistance);
                WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), line,
offset, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
                txtContent.setText(WordtoSpan);

                break;
        }
        }
    }

Please help me, I really need it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文