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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SVD分解 Eigen库 opencv库[通俗易懂]

    SVD分解 Eigen库 opencv库[通俗易懂]如题,使用库函数进行svd分解,形如A=U*S*VT.Eigen库:#include#include#include//usingEigen::MatrixXf;usingnamespaceEigen;usingnamespaceEigen::internal;usingnamespaceEigen::Architect

    2022年10月19日
    2
  • U盘pe(理论大白菜、优启通、微PE都可以) 装ESXI方案 (非通用UltraISO重做启动U盘),省U盘「建议收藏」

    U盘pe(理论大白菜、优启通、微PE都可以) 装ESXI方案 (非通用UltraISO重做启动U盘),省U盘「建议收藏」此文是我发的一篇的准备工作,因为ESXi6.7刚发布的原因,很多同学等着升级,故而先写了出来。原文如下:戴尔R730安装升级VMwarevSphereHypervisor(ESXi)6.7https://koolshare.cn/thread-139061-1-1.html这一篇,介绍怎样从U盘加载ISO镜像,并引导电脑/服务器,完成新安装/升级系统的操作,当然,实际中不仅仅用于ESXi的安装升级,也可以用于NAS4Free、FreeNAS、ProxmoxVE虚拟机系统,爱快软路由系统、Pan

    2025年8月31日
    17
  • 低噪放大器

    0引言在雷达射频接收系统中,对系统性能指标的要求越来越高,其中低噪声放大器是影响着整个接收系统的噪声指标的重要因素。与普通的放大器相比,低噪声放大器作用比较突出,一方面可以减少系统的杂波干扰,提高系统的灵敏度;另一方面可以放大系统的射频信号,保证系统正常工作。因此,低噪声放大器的性能制约着整个接收系统的性能,对整个接收系统性能的提高起了决定性的作用。因此,研制宽频带、高性能、更低噪声的放大器

    2022年4月6日
    70
  • 内存映射文件原理_开源内存数据库

    内存映射文件原理_开源内存数据库前言在前文LMDB简介的基础上,本文介绍LMDB数据库的基本用法,包括环境environment创建、数据存储put、数据读取get等;源码ULONGcvtest_Test4_Lmdb(){INTiRet;MDB_txn*pstTxn=NULL;MDB_dbistDbi;UINTuiKey=1;…

    2022年9月29日
    5
  • 基于android的_android studio创建activity

    基于android的_android studio创建activityAndroid如何判断一个应用在运行 在一个应用中,或一个Service、Receiver中判断一个应用是否正在运行,以便进行一些相关的处理。这个时候我们需要得到一个ActivityManager,这个Manager顾名思意就是管理Activity的,它有一个方法叫getRunningTasks,可以得到当前系统正在运行的Task的列表,代码如下:  A

    2025年9月26日
    6
  • react路由懒加载_vue-router实现路由懒加载

    react路由懒加载_vue-router实现路由懒加载路由懒加载是什么意思?在开发中,我们打开开发者工具,会发现我们刚刚打开就会去加载所有页面.路由懒加载就是只加载你当前点击的那个模块按需去加载路由对应的资源,可以提高加载速度(一个页面加载过后再次访问不会重复加载)实现原理:将路由相关的组件,不再直接导入了,而是改写成异步组件的写法,只有当函数被调用的时候,才去加载对应的组件内容方法一:重写首先,新建一个asynccComponent.js,作为公共jsimport{ComponentasReactComponet}fr

    2022年10月7日
    3

发表回复

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

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