android - 在 LinearLayout 上实现 OnTouchListener - Android 开发

标签 android android-widget touch-event ontouchlistener android-linearlayout

public class UnitConverterActivity extends Activity implements OnTouchListener {
/** Called when the activity is first created. */
LinearLayout mLinearLayout;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mLinearLayout = new LinearLayout(this);

    ImageView i = new ImageView(this);
    i.setImageResource(R.drawable.mainmenu);
    //i.setAdjustViewBounds(false);
    i.setScaleType(ScaleType.FIT_XY);
    i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    mLinearLayout.addView(i);
    setContentView(mLinearLayout);
    //setContentView(R.layout.main);
}

@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
    // TODO Auto-generated method stub
    return false;
}
}

我已经使用上述方法为我尝试创建的主菜单加载图像。该图像有四个区域,每个区域都将用于调用应用程序的特定功能。现在我正在尝试在这些区域实现触摸界面。我知道如何为此目的定义像素范围,但我不知道如何在图像上实现 OnTouchListner。请在这方面帮助我。

最佳答案

如果您的图像被分成四个矩形区域(比方说)

然后在onCreate中有:

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;
}

关于android - 在 LinearLayout 上实现 OnTouchListener - Android 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534028/

相关文章:

android - 字符串资源文件中的格式语句

php - Android 和 PHP 之间的加密/解密问题

android - 将 RemoteView 转换为 View

安卓多点触控

java - onTouchEvent 为多个指针返回相同的坐标

android - ImageView - 获取触摸像素的颜色

android - 纹理/顶点的不同索引数组

java - Arraylist 元素在最后一个索引之后重复

java - 我如何在android中使用孟加拉字体作为字符串值

android - 在 TabHost 中使用 ViewFlipper