在LinearLayout上实现OnTouchListener-Android开发
我已经使用上面的方法为我试图创建的主菜单加载了一个图像。该图像有四个区域,每个区域将用于调用应用程序的特定功能。现在我正在尝试在这些区域实现触摸界面。我知道如何为此定义像素范围,但我不知道如何在图像上实现OnTouchListner。请在这方面帮助我。只需将此代码放入onCreate()在LinearLayout上实现OnTouchListener-Android开发,android,android-widget,touch-event,ontouchlistener,android-linearlayout,Android,Android Widget,Touch Event,Ontouchlistener,Android Linearlayout,我已经使用上面的方法为我试图创建的主菜单加载了一个图像。该图像有四个区域,每个区域将用于调用应用程序的特定功能。现在我正在尝试在这些区域实现触摸界面。我知道如何为此定义像素范围,但我不知道如何在图像上实现OnTouchListner。请在这方面帮助我。只需将此代码放入onCreate() 如果你的图像被分割成四个四分之一的矩形(比如说) 然后在onCreate中,您可以: i.setOnClickListener(new OnClickListener() { @Override pub
如果你的图像被分割成四个四分之一的矩形(比如说) 然后在onCreate中,您可以:
i.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//your code
}
}
对于你的听众来说,类似这样的事情(仅说明原则):
@覆盖
公共布尔onTouch(视图v、运动事件mev){
int width=v.getWidth();
int height=v.getHeight();
float x=mev.getX();
float y=mev.getY();
串味精;
如果(x<宽度/2){
如果(y<高度/2)
msg=“左上角四分之一”;
其他的
msg=“左下角四分之一”;
}否则{
如果(y<高度/2)
msg=“右上角四分之一”;
其他的
msg=“右下角四分之一”;
}
Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
返回false;
}
他想点击不同区域的图像,但他无法通过这种方式实现……是的,这就是我想要实现的。非常感谢@NickT。这正是我想要的。由于我是Android开发新手,我不清楚如何在图像上实现侦听器。再次感谢。
i.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//your code
}
}
i.setOnTouchListener(this);
@Override
public boolean onTouch(View v, MotionEvent mev) {
int width = v.getWidth();
int height = v.getHeight();
float x = mev.getX();
float y = mev.getY();
String msg;
if (x < width / 2) {
if (y < height / 2)
msg = "Top left quarter";
else
msg = "Bottom left quarter";
} else {
if (y < height / 2)
msg = "Top right quarter";
else
msg = "Bottom right quarter";
}
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
return false;
}