我正在开发儿童字母学习应用程序。我需要从textview获取整个文本区域的X和Y坐标,以允许它们仅绘制文本。例如:我的文本视图中有一个字母A,我需要允许用户仅在A文本上方绘制该字母,并需要将绘图阻止在文本之外。
我唯一的问题是我不知道如何查找字母的文本区域,因为我增加了文本的字体大小以使其显示更大并在屏幕上居中对齐。
任何建议都会很有帮助。
答案 0 :(得分:0)
这样的东西(https://www.youtube.com/watch?v=15B3L78jWfI)?
要阻止用户在给定区域之外进行绘制,请重写(12:22)onTouchEvent(),您可以放置一个子句来检查给定坐标是否在内部。
要检查它们是否在其中,可以编写一个简单的函数:
int MIN_X;
int MAX_X;
int MIN_Y;
int MAX_Y;
boolean isInside(int xCord, int yCord){
if(xCord>=MIN_X && xCord<=MAX_X && yCord>=MIN_Y && yCord<=MAX_Y)
return true;
return false;
}
每次选择的区域更改时,您只需覆盖最小值和最大值。
答案 1 :(得分:0)
尝试下面提到的代码:
ViewTreeObserver vto = textView.getViewTreeObserver();
vto.addOnGlobalLayoutListener (new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Initialize a new integer array two hold the TextView x y position
int[] location = new int[2];
textView.getLocationOnScreen(location);
}
});