对于TextView显示的内容,通过点击屏幕,就能把当前显示的内容获取出来。以下的例子是通过判断空格来区分每个词,对于英文单词是适用的,如果想抓中文就得自己想办法了,当然也可以改变判断来抓词。
实现代码主码有
TextPaint paint = text.getPaint();
float x, y;
String str = text.getText().toString().replace(",", " ").replace("-", " ");
String temp = " ";
x = event.getX();
y = event.getY();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == ' ') {
temp = temp + " " + i;
}
}
temp = temp + " " + str.length();
String[] nums = temp.trim().split(" ");// 获取空格位置
String subArg[] = str.split(" ");// 获取无空格的字符
if (subArg.length == 1) {
System.out.println(new String(subArg[0]));
} else {
for (int i = 1; i < subArg.length; i++) {
if (x <= (paint.measureText(str.substring(0, Integer.parseInt(nums[i]))))&& x > (paint.measureText(str.substring(0,Integer.parseInt(nums[i - 1]) + 1)))) {
System.out.println(new String(subArg[i]));
} else if (x <= (paint.measureText(str.substring(0,Integer.parseInt(nums[0]))))) {
System.out.println(new String(subArg[0]));
}
}
}