在imageview

时间:2018-01-05 08:09:23

标签: android imageview

我正在Android中进行人脸识别,我想知道如果我有一个imageview,我可以画一个名称超过它的矩形,假设我知道要绘制的4坐标,当我点击时它将调用函数的矩形或文本

P / s :如果太复杂,在imageview上绘制可点击的文字也会很好。谢谢

Something like this

1 个答案:

答案 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. 
    }
}