package com.*.*.*.utils;import android.graphics.Rect;
import android.text.Layout;
import android.widget.TextView;public class TextViewUtils
{/**获取TextView某一个字符的坐标位置@return 返回的是相对坐标@parms tv@parms index 字符索引*/public static Rect getTextViewSelectionRect(TextView tv, int index) {Layout layout = tv.getLayout();Rect bound = new Rect();int line = layout.getLineForOffset(index);layout.getLineBounds(line, bound);int yAxisBottom = bound.bottom;//字符底部y坐标int yAxisTop = bound.top;//字符顶部y坐标int xAxisLeft = (int) layout.getPrimaryHorizontal(index);//字符左边x坐标int xAxisRight = (int) layout.getSecondaryHorizontal(index);//字符右边x坐标//xAxisRight 位置获取后发现与字符左边x坐标相等,如知道原因请告之。暂时加上字符宽度应对。if (xAxisLeft == xAxisRight){String s = tv.getText().toString().substring(index, index + 1);//当前字符xAxisRight = xAxisRight + (int) tv.getPaint().measureText(s);//加上字符宽度}int tvTop=tv.getScrollY();//tv绝对位置return new Rect(xAxisLeft, yAxisTop+ tvTop, xAxisRight, yAxisBottom+tvTop );}/**获取TextView触点坐标下的字符@param tv tv@param x 触点x坐标@param y 触点y坐标@return 当前字符*/public static String getTextViewSelectionByTouch(TextView tv, int x, int y) {String s = "";for (int i = 0; i < tv.getText().length(); i++){Rect rect = getTextViewSelectionRect(tv, i);if (x < rect.right && x > rect.left && y < rect.bottom && y > rect.top){s = tv.getText().toString().substring(i, i + 1);//当前字符break;}}return s;}
}

在 点击事件中通过获取触点坐标后调用 TextViewUtils.getTextViewSelectionByTouch(tv, x, y) 即可获取当前字符。

Android单击、长按获取当前触点坐标下(TextView)文字字符相关推荐

  1. Android 获取屏幕指定坐标的颜色

    用到的API MediaProjectionManager MediaProjection VirtualDisplay ImageReader 原理:利用Android系统提供的投影功能把屏幕投影到 ...

  2. android根据音乐路径获取音乐时长,采样率等

    android根据音乐路径获取音乐时长,采样率等 git路径为:https://github.com/zhangliangming/HPAudio Gradle 1.root build.gradle ...

  3. android webview生成长图,Android 生成长图并添加水印(二)

    本文主要介绍一下RecyclerView生成长图. 是接着上一篇Android 生成长图并添加水印(一)写的,不过单独看也是可以的,如有不清楚的地方可以先看上一篇或在下方留言. 先附效果图: Recy ...

  4. android SDK manager 无法获取更新版本列表【转载】

    http://mirrors.neusoft.edu.cn/eclipse/releases/luna/ 打开这个网址就可以看到adt的详细信息:  http://developer.android. ...

  5. python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法

    1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...

  6. android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商

    android关闭应用及获取运营商ISP 1.AndroidManifest.xml <?xml version="1.0" encoding="utf-8&quo ...

  7. Android 开源1:获取并解析网页信息(Jsoup)

    Android 开源1:获取并解析网页信息(Jsoup) Android 开源1获取并解析网页信息Jsoup 一程序功能 二程序界面 三程序知识点与创新点 四 总结 一.程序功能 本款APP主要是通过 ...

  8. 没有授权,Android App 也能获取你的权限?!

    Play Trick or Treat! 不给权限就捣乱! 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一直以来,无论是 Android 还是 iOS 用户都有一种困扰,即每次下载并 ...

  9. Android webView长按保存图片到本地相册(队列下载实现)

    前言 自己写的app中 有大量的webView 在加载的过程中 新增了许多功能 比如 加载H5链接时 遇到有趣的图片 想长按保存下来是否可以呢 答案:"肯定是可以的" 网上有很多例 ...

最新文章

  1. 【二级java】软件工程基础
  2. Keil宏定义和如何知道单片机资源名称
  3. python3.8.5怎么用-python3.8 五分钟就可以入门
  4. jboss启动之奇葩问题
  5. “像你一样”与海容天天:OPEN国际行为艺术展十周年
  6. android app功能测试,androidAPP功能测试要点幻灯片.pptx
  7. python词库介绍_解析搜狗词库(python)
  8. QT之TreeWidgetItem基本使用
  9. VC-MFC程序设计精讲
  10. 按键精灵基础插件介绍,值得收藏呀
  11. 计算机软件税负率,软件产品增值税超税负退税实务问题
  12. 误差状态方程与雅可比矩阵
  13. 大数元科技牵手中央财经大学 助力财税金融体制改革
  14. android 签到自定义,Android日历签到,超级简单的实现方式
  15. 计算机三维制图描述零件绘制过程,AutoCAD三维实体零件图绘制
  16. Windows防火墙与TCP、UDP
  17. java 从控制台输入一个正整数_编程输出该正整数各位数字之和_C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和...
  18. 销售凭证、客户主数据相关表
  19. 德尔玛递交注册:半年营收15亿 小米与欧派是股东
  20. 设置Windows本地DNS域名解析hosts

热门文章

  1. 《WinForm开发系列之控件篇》Item1 BackgroungWorker
  2. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务
  3. Dapr + .NET Core实战(二) 服务调用
  4. WeihanLi.Npoi 1.20.0 Released
  5. 深入LINQ | 动态构建LINQ表达式
  6. Istio 1.10 发布及官网改版
  7. EF Core查询标签TagWith
  8. 过完年,又不想上班了?
  9. 一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
  10. 5分钟快速接入钉钉实现钉钉考勤