Android-如何在textview上显示文本选择?

Android-如何在textview上显示文本选择?,第1张

概述我正在实现一个epub阅读应用程序,我正在使用textview显示epub的文本.我想在用户长时间按下textview时从textview中选择文本,然后对所选文本视图文本(如高亮显示等)执行多项 *** 作. 那么,如何向用户显示这些游标以选择任何用户想要的文本. *我不想使用EditText并使其看起来像textview.可能是重写textview是首选. *我附上截图以解释我在寻找什么 – 这是很久 我正在实现一个epub阅读应用程序,我正在使用textvIEw显示epub的文本.我想在用户长时间按下textvIEw时从textvIEw中选择文本,然后对所选文本视图文本(如高亮显示等)执行多项 *** 作.
那么,如何向用户显示这些游标以选择任何用户想要的文本.

*我不想使用EditText并使其看起来像textvIEw.可能是重写textvIEw是首选.

*我附上截图以解释我在寻找什么 –

解决方法 这是很久以前的问题,当时我自己也有这个问题.我自己为自己的应用程序Jade Reader制作了一个Selectable TextVIEw.我已经为 GitHub提供了解决方案. (BitBucket的代码与应用程序绑定,但它更完整和更完美.)

Selectable TextView (on GitHub)

Jade Reader (on BitBucket)

使用以下代码将使TextVIEw可选.

package com.zyz.mobile.example;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;public class MainActivity extends Activity {    private SelectableTextVIEw mTextVIEw;    private int mtouchX;    private int mtouchY;    private final static int DEFAulT_SELECTION_LEN = 5;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        // make sure the TextVIEw's BufferType is Spannable,see the main.xml        mTextVIEw = (SelectableTextVIEw) findVIEwByID(R.ID.main_text);        mTextVIEw.setDefaultSelectioncolor(0x40FF00FF);        mTextVIEw.setonLongClickListener(new VIEw.OnLongClickListener() {            @OverrIDe            public boolean onLongClick(VIEw v) {                showSelectionCursors(mtouchX,mtouchY);                return true;            }        });        mTextVIEw.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                mTextVIEw.hIDeCursor();            }        });        mTextVIEw.setontouchListener(new VIEw.OntouchListener() {            @OverrIDe            public boolean ontouch(VIEw v,MotionEvent event) {                mtouchX = (int) event.getX();                mtouchY = (int) event.getY();                return false;            }        });    }    private voID showSelectionCursors(int x,int y) {        int start = mTextVIEw.getPreciSEOffset(x,y);        if (start > -1) {            int end = start + DEFAulT_SELECTION_LEN;            if (end >= mTextVIEw.getText().length()) {                end = mTextVIEw.getText().length() - 1;            }            mTextVIEw.showSelectionControls(start,end);        }    }}
总结

以上是内存溢出为你收集整理的Android-如何在textview上显示文本选择?全部内容,希望文章能够帮你解决Android-如何在textview上显示文本选择?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1138771.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存