webview长按复制_安卓手机怎么复制图片上的文字

webview长按复制_安卓手机怎么复制图片上的文字有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息。类似的,就像长按WebView或者EditText的内容就自动弹出复制选项。这里面主要是2个特点:1、用户只能浏览文本信息而不能编辑这些文本信息;2、用户对着文本信息长时间点按可以弹出”复制”选项实现复制;网上有好多种方法可实现,也比较零散,此处做个小结,希望有所帮助。1、通过继承EditTe…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息。类似的,就像长按WebView或者EditText的内容就自动弹出复制选项。

这里面主要是2个特点:

1、用户只能浏览文本信息而不能编辑这些文本信息;

2、用户对着文本信息长时间点按可以弹出”复制” 选项实现复制;

网上有好多种方法可实现,也比较零散, 此处做个小结,希望有所帮助。

1、通过继承EditText,自定义TextView

public class NewTextView extends EditText {

public NewTextView(Context context) {

super(context);

// TODO Auto-generated constructor stub }

public NewTextView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub }

public NewTextView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

// TODO Auto-generated constructor stub }

@Override

protected boolean getDefaultEditable() {//禁止EditText被编辑 return false;

}

}

上面很关键的一个方法是getDefaultEditable(), return false;即禁止EditText被编辑,变成了不可编辑的EditText,但同时具有EditText的长按复制功能。更进一步的,如果查看EditText源码, 就发现源码中有一个方法 protected void onCreateContextMenu(ContextMenu menu)

控制了EditText长按弹出的上下文菜单,可以自定义这个方法且实现为空protected void onCreateContextMenu(ContextMenu menu){   }

然后在onTouchEvent事件中拦截处理自定义的点按事件,弹出自定义的菜单。

原理如上, 更直白简单的方法是直接在xml中使用一个EditText,并且将属性设置为 android:editable=”false” .

2、使用OnLongClickListener

直接使用TextView,然后在代码里给TextView添加OnLongClickListener事件,长按时弹出自定义 “复制” 菜单(比如结合 PopupWindow做弹出菜单)。点击”复制” 就去获取TextView的内容。

当然, 这里只是获取内容,如何将内容放入粘贴管理器还需要一个ClipboardManager 对象。它负责管理复制后粘贴的这件事。

ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

cmb.setText(content.trim()); //将内容放入粘贴管理器,在别的地方长按选择”粘贴”即可 cm.getText();//获取粘贴信息

3、使用setTextIsSelectable()方法

代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可。

TextView tv = new TextView(context);

tv.setTextIsSelectable(true);

上面就是常见的长按文本信息弹出”复制”菜单的一些方法小结了,希望对大家有所帮助.

以上这篇TextView长按复制的实现方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187848.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 不止一个背包的背包问题_分组背包问题

    不止一个背包的背包问题_分组背包问题有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。si=−1 表示第 i 种

    2022年8月9日
    10
  • 2. Pycharm的介绍与使用[通俗易懂]

    2. Pycharm的介绍与使用[通俗易懂]使用Python原生IDLEIDLE是Python软件包自带的一个集成开发环境,点击开始–>Python安装包–>IDLE。启动IDLE时,会显示>>>,可以在>>>后面输入代码。在PythonShell输入代码回车后会立即执行,并直接在下面显示执行的结果。如下图所示:在原生IDLE模式下编写的代码只停留于内存当中,当关闭原生IDL…

    2022年8月26日
    5
  • iso qemu 安装ubuntu_ubuntu – Android-x86_64安装程序无法在QEMU / KVM中启动 – 而是显示EFI Shell…

    iso qemu 安装ubuntu_ubuntu – Android-x86_64安装程序无法在QEMU / KVM中启动 – 而是显示EFI Shell…我想将它安装到运行在Ubuntu16.0464位上的虚拟机上,UEFI使用QEMU/KVM和virt-manager作为图形前端.安装OVMF并正确配置虚拟机管理程序,作为具有UEFI的Ubuntu测试虚拟机,其虚拟磁盘文件和安装程序映像在同一位置正常工作.但是,当我使用下面转储的设置启动新创建的VM并将下载的Android-x86映像安装到虚拟CD驱动器中时,它不会启动但显示EFISh…

    2022年7月19日
    22
  • Google打不开的解决方法和IP地址表「建议收藏」

    Google打不开的解决方法和IP地址表「建议收藏」 Google打不开的解决方法和IP地址表  本文将给出一些能够正常访问被屏蔽的Google搜索引擎的常用方法以及Google的IP地址表。  在Google.com里面进行搜索的时候,经常会遇到突然出现“该页无法显示”的提示,并且之后的十多分钟都无法正常连接Google,这里给出一些方法,可以解决大部分Google无法访问或进不去的问题。  1、如果是搜索过程中出现“该页无法显示”的提示,接着

    2022年9月29日
    0
  • 架构之业务架构[通俗易懂]

    架构之业务架构[通俗易懂]业务架构之产品经理的职责产品经理的职责用户的原始需求往往是零散和碎片化的,产品经理的职责就是:告诉用户,系统长什么样子;告诉开发,他要实现什么功能。产品经理定义了系统的外表。产品经理的职责:1、收集用户的原始需求,2、梳理成一个个业务流程,每个业务流程由多个业务步骤组成。一个业务步骤包含三部分的内容:输入、输出和业务功能。3、需求梳理好后,产品经理会把每个步骤具体化为页面原型。在原型中,会以直观的方式给出各个步骤的输入或输出,以及用户的操作过程,最后再把这些页面串起来,形成一个业

    2022年10月12日
    0
  • Winform控件:保存文件对话框(SaveFileDialog)[通俗易懂]

    Winform控件:保存文件对话框(SaveFileDialog)[通俗易懂]SaveFileDialog用于保存文件1、新建Winform窗体应用程序,命名为SaveFileDialogDemo。2、在界面上添加一个按钮的控件(用于打开保存文件对话框),添加文本控件,用于

    2022年7月1日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号