将手指放在视图上时如何识别悬停视图? [英] How to identify hover-view when moving finger on views?
本文介绍了将手指放在视图上时如何识别悬停视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是android的新手,我想知道在将手指移到不同视图时如何识别悬停视图.例如,如果我的活动有5个LinearLayouts A,B,C,D,E,并且如果我从C移到B,然后移到E,则我想识别出它.如果有人知道如何实现,请给我一个例子.
I'm new to android and I want to know how to identify the hover view when moving finger on different views. As a example if my activity has 5 LinearLayouts A,B,C,D,E and if I moving from C to B then to E I want to identify that. Please if someone knows how to implement that can you give me an example.
到目前为止我尝试过的代码.
Code that I have tried so far..
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_HOVER_ENTER) {
switch (v.getId()) {
case R.id.linearLayoutA:
Log.d(getClass().getSimpleName(), "entered A");
break;
case R.id.linearLayoutB:
Log.d(getClass().getSimpleName(), "entered B");
break;
case R.id.linearLayoutC:
Log.d(getClass().getSimpleName(), "entered c");
break;
case R.id.linearLayoutD:
Log.d(getClass().getSimpleName(), "entered d");
break;
case R.id.linearLayoutE:
Log.d(getClass().getSimpleName(), "entered e");
break;
}
}
return true;
}
谢谢.
推荐答案
在您的活动中实施View.OnTouchListener
Implement View.OnTouchListener in your activity
获取项目触摸的矩形区域,然后如果触摸点在该矩形区域内,则执行某项操作...
get rect area of item touch then if touch points are inside the that rectangle area then do something...
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
rect1 = new Rect(linearLayout1.getLeft(), linearLayout1.getTop(),
linearLayout1.getRight(), linearLayout1.getBottom());
rect2= new Rect(linearLayout2.getLeft(), linearLayout2.getTop(),
linearLayout2.getRight(), linearLayout2.getBottom());
}
/////////////////////////////
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getActionMasked() == (MotionEvent.ACTION_DOWN|MotionEvent.ACTION_MOVE)) {
if (rect1.contains((int) event.getX(), (int) event.getY())) {
//do something when touch or moving on linearlayout1 area
} else if (rect2.contains((int) event.getX(), (int) event.getY())) {
//do something when touch or moving on linearlayout2 area
}
}
return true;
}
这篇关于将手指放在视图上时如何识别悬停视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文