我正在Android中进行人脸识别,我想知道如果我有一个imageview,我可以画一个名称超过它的矩形,假设我知道要绘制的4坐标,当我点击时它将调用函数的矩形或文本
P / s :如果太复杂,在imageview上绘制可点击的文字也会很好。谢谢
答案 0 :(得分:0)
我相信如果你的ImageView是你应用的背景,你可以使用这样的方法:
public void drawRect(Graphics g){
Paint paint = new Paint();
paint.setColor(Color.GREEN);
g.drawRect(left, top, right, bottom, paint);
g.drawText(name, x, y, paint);
}
我不知道您的面部识别程序是如何工作的,但只要您识别出面部,就可以调用此方法。
对于“单击部分”,您可以通过创建实现View.onTouchListener的类mouseListener来使用MouseListener,或者只需将onTouchEvent(MotionEvent me)方法添加到main_activity中。 如果你选择创建一个不同的类(不要忘记创建对象mouseListener到main并使用setOnTouchListener设置它),你将拥有通常的onTouch(View视图,MotionEvent me)方法并处理点击,你可以做这样的事情:
int x = (int) me.getX();
int y = (int) me.getY();
if(me.getAction() == MotionEvent.ACTION_DOWN){
if(x >= lowerXBoundaryOfRectangle && x <= biggerXBoundaryOfRectangle &&
y >= lowerYBoundaryOfRectangle && y <= biggerYBoundaryOfRectangle){
//Basically, just check if x and y are in the rectangle w/ the known coordinates.
function(); //You call the fct needed here.
}
}