Android單擊、長按獲取當前觸點坐標下(TextView)文字字符

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)?即可獲取當前字符。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286078.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286078.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286078.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

后臺頁制作01《ivx低代碼簽到系統制作》

制作iVX 低代碼項目需要進入在線IDE&#xff1a;https://editor.ivx.cn/ 一、簽到系統思考 簽到系統一般是指公布一個簽到鏈接或者二維碼&#xff0c;隨后用戶掃碼后即可完成簽到。 那如何制作呢&#xff1f;首先我們可以先不考慮簽到頁面的制作&#xff0c;既然簽到暫時沒有…

個人作業-Week2

第一部分 調研&#xff0c; 評測 運行平臺 win 8 軟件版本&#xff1a;微軟必應詞典桌面版 3.5.2 BUG標題&#xff1a;必應背單詞無法發音 BUG詳細描述&#xff1a;如圖&#xff0c;左邊為必應詞典該單詞的搜索&#xff0c;可以發音&#xff0c;而右邊必應背單詞中該單詞的發音…

Blazor WebAssembly + Grpc Web=未來?

Blazor WebAssembly是什么首先來說說WebAssembly是什么&#xff0c;WebAssembly是一個可以使C#,Java,Golang等靜態強類型編程語言&#xff0c;運行在瀏覽器中的標準&#xff0c;瀏覽器廠商基于此標準實現執行引擎。在實現了WebAssembly標準引擎之后&#xff0c;瀏覽器中可以執行…

C語言試題五十二之學生的記錄由學號和成績組稱個,n名大學生得數據已在主函數中放入結構體數組a中,請編寫函數fun,它的功能時:按分數的高低排列學生的記錄,高分在前。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

Xtrabackup備份MySQL

一、安裝Xtrabackup 1234# wget --no-check-certificate http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm# rpm -ivh percona-release-0.1-4.noarch.rpm# yum list | grep percona# yum -y install percona-xtrabackup-24二、…

Can't create directory 'E:\Repositories\***\db\transactions\138-41.txn':

遇到這種問題應該是遷移SVN庫時丟失了文件夾引起的&#xff0c;直接在服務器上找到對應項目的db文件夾&#xff0c;手動創建“transactions”目錄和“txn-protorevs”目錄即可正常提交。

[它山之石] 一件事情,假設你不能說清楚,十有八九你就做不好

記得有一次開會。我的頭兒說了標題所寫的這句話,自己深以為然。 有過較多解決這個問題的經歷的人可能會有這種感覺&#xff0c;非常多時候&#xff0c;面對一個問題。我們即使沒有全然將之想清 楚。也可以基于已有的經驗給出一個可以work的解決方式&#xff0c;當然這樣的情況下…

【MATLAB統計分析與應用100例】案例013:matlab讀取Excel數據,調用nlinfit函數作一元非線性回歸

1. 一元線性回歸分析效果預覽 2. matlab完整實現代碼 %讀取數據,繪制散點圖** HeadData = xlsread(examp08_02.xls); %從Excel文

C語言試題五十三之將所有大于1小于整數m的非素數存入xx所指的數組中,非素數的個數通過k傳回。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

發布功能完成02《ivx低代碼簽到系統制作》

制作iVX 低代碼項目需要進入在線IDE&#xff1a;https://editor.ivx.cn/ 一、發布功能思考、數據庫、服務創建 上一節我們制作了后臺的頁面&#xff0c;那么此時我們應該需要制作發布功能了&#xff0c;那么在制作之前&#xff0c;我們應該思考一下如何制作這個簽到內容發布的…

力扣(leetcode)第26題刪除有序數組中的重復項(Python)

26.刪除有序數組的重復項 題目鏈接&#xff1a;26.刪除有序數組的重復項 給你一個非嚴格遞增排列 的數組 nums &#xff0c;請你 原地 刪除重復出現的元素&#xff0c;使每個元素 只出現一次 &#xff0c;返回刪除后數組的新長度。元素的 相對順序 應該保持 一致 。然后返回 …

WPF 實現簡易北京地鐵效果圖

本文經原作者授權以原創方式二次分享&#xff0c;歡迎轉載、分享。原文作者&#xff1a;眾尋原文地址&#xff1a; https://www.cnblogs.com/ZXdeveloper/p/8600785.html前言這個是百度地圖上北京地鐵的地址&#xff0c;我們先看下百度上面的效果圖&#xff1b;我要實現的內容比…

C#學習筆記-Windows窗體自定義初始位置

根據屏幕大小定義初始位置&#xff1a; &#xff08;這個不是難&#xff0c;但是最近常常忘記&#xff0c;記著方便查看。&#xff09; 1 //獲取當前屏幕的長和寬2 int ScreenX Screen.PrimaryScreen.Bounds.Width;3 int ScreenY Screen…

[轉] java.nio.ByteBuffer中flip、rewind、clear方法的區別

轉載 對緩沖區的讀寫操作首先要知道緩沖區的下限、上限和當前位置。下面這些變量的值對Buffer類中的某些操作有著至關重要的作用&#xff1a; limit&#xff1a;所有對Buffer讀寫操作都會以limit變量的值作為上限。position&#xff1a;代表對緩沖區進行讀寫時&#xff0c;當前…

【MATLAB統計分析與應用100例】案例014:matlab讀取Excel數據,調用stepwise函數作交互式逐步回歸分析

文章目錄 1. 交互式逐步回歸分析結果預覽2. 完整matlab代碼1. 交互式逐步回歸分析結果預覽 2. 完整matlab代碼 % 從Excel文件examp08_03.xls中讀取數值型數據 xydata = xlsread(examp08_03.xls); y = xydata<

MsSql 自定義分數段,按分數段統計考試人次

--分數段分布 DECLARE levels VARCHAR(100) 10,20,30,40,50,60,70,80,90,100; --自定義分數段 DECLARE paperId VARCHAR(100)0000000000001019--試卷編號 WITH tbTemp AS (--處理分數段SELECT L.levelFROM (SELECT [value] CONVERT(XML, <v> REPLACE(levels, ,, &l…

C語言試題五十四之求n以內(不包括n)同時能被3與7整除的所有自然數之和的平方根s,并作為函數值返回。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

opencv---顏色空間轉化并實現物體跟蹤

一、圖像處理的基本操作 因為這是第一篇寫opencv的筆記&#xff0c;故先講講在python下寫opencv的基本操作。總共總結了三點如下&#xff1a; 開頭一定要加編碼聲明:-*- coding: utf-8 -*-python下記得引入opencv模塊:import cv2要知道如何讀取并展示圖片,代碼如下:# -*- codin…

簽到功能完成03《ivx低代碼簽到系統制作》

制作iVX 低代碼項目需要進入在線IDE&#xff1a;https://editor.ivx.cn/ 一、簽到頁制作 上一節完成了簽到內容的發布&#xff0c;那我們接下來如何制作一個簽到頁面并且簽到呢&#xff1f; 此時我們先創建一個頁面叫做簽到二維碼頁面&#xff1a; 隨后直接預覽這個頁面&am…

System.CommandLine參數Argument

前兩篇說到Command和Option&#xff0c;這篇說說Argument。Argument的用法和Option很像&#xff0c;只是他的構造和屬性有些差別&#xff0c;再就是在運行輸入時有區別&#xff0c;接下來看看實現。一個參數//創建根命令 var rootCommand new RootCommand("這是一個命令行…