当前位置: 首页 > 知识库问答 >
问题:

触摸事件ImageView+GLSurfaceView

斜瑞
2023-03-14

我想知道是否有可能在GLSurfaceView上进行ImageView并获得两者各自的触摸事件。我的问题是,我想知道ImageView何时被按下(因此我将使用OnTouchListener)。但是,我仍然希望能够获得我的glsurfaceview的触碰事件。

if(v.getId() == R.id.ImageView ;){
    switch (action) {
        case MotionEvent.ACTION_DOWN:
             //Do something 
             break ;
        //....
    }
}
else{
    //Process GLSurfaceView touch events
 }
}                                  

提前感谢,

编辑:这是我的activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id= "@+id/linearlayout1" >

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="450dp"
    android:id= "@+id/relativeLayout" >


        <com.kitware.VolumeRender.VolumeRenderView
            android:id="@+id/glSurfaceViewID"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.23" />


        <ImageView
            android:id="@+id/ImageView"
            android:layout_width="60dp"
            android:layout_height="70dp"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true"
            android:src="@drawable/i3" />

        <ImageView
            android:id="@+id/ImageView2"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:src="@drawable/tmp" />

</RelativeLayout>        

<Spinner
    android:id="@+id/myspinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/country_arrays"
    android:prompt="@string/country_prompt" /> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id= "@+id/linearlayout2" >
// And so on, the end of the file is irrelevant I suppose

共有1个答案

常明亮
2023-03-14

你可以做这样的事

imageView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus) {
            v.getParent().requestDisallowInterceptTouchEvent(true);
        } else {
            v.getParent().requestDisallowInterceptTouchEvent(false);
        }
    }
});

你的surfaceView也一样

 类似资料:
  • 触摸操作概述 浏览器的触摸 API 由三个部分组成。 Touch:一个触摸点 TouchList:多个触摸点的集合 TouchEvent:触摸引发的事件实例 Touch接口的实例对象用来表示触摸点(一根手指或者一根触摸笔),包括位置、大小、形状、压力、目标元素等属性。有时,触摸动作由多个触摸点(多根手指)组成,多个触摸点的集合由TouchList接口的实例对象表示。TouchEvent接口的实例对

  • 触摸事件是手机游戏中最重要的事件,它易于创建,还能提供多种多样的功能。 让我们先了解一下什么是触摸事件,当你触摸移动设备的屏幕时,设备感受到被触摸,了解到被触摸的位置,同时取得触摸到的内容,然后你的触摸被回答。 这就是触摸事件。 如果你希望通过触摸控制屏幕下层的对象,那可以通过 优先级,达成这种需求,优先级高的对象能先处理事件。 创建触摸事件监听器: // Create a "one by on

  • 主要内容:jQuery Mobile 点击,实例,jQuery Mobile 点击不放(长按),实例,jQuery Mobile 滑动,实例,jQuery Mobile 向左滑动,实例,jQuery Mobile 向右滑动,实例触摸事件在用户触摸屏幕(页面)时触发。 触摸事件同样可应用与桌面电脑上:点击或者滑动鼠标! jQuery Mobile 点击 点击事件在用户点击元素时触发。 如下实例:当点击 <p> 元素时,隐藏当前的 <p> 元素: 实例 $("p").on("tap",functio

  • 触摸事件在用户触摸屏幕(页面)时触发。 触摸事件同样可应用与桌面电脑上:点击或者滑动鼠标! jQuery Mobile 点击 点击事件在用户点击元素时触发。 如下实例:当点击 <p> 元素时,隐藏当前的 <p> 元素: $("p").on("tap",function(){   $(this).hide(); }); jQuery Mobile 点击不放(长按) 点击不放(长按) 事件在点击并

  • 触摸事件类 每次手指点击时,会产生与手指相同数量的触控对象。如2个手指同时点击,将会产生2个触控对象,其中触控对象保存了当前的手指id,位置,点击态(点击中,移动中,点击抬起)等信息。 接受触摸的流程。 1.调用getTouchEvent 获取触摸时间数组 2.处理触摸事件 3.调用updateTouchStatus更新触摸 首先先说明触控对象其中的元素 参数 类型 名称 备注 id number

  • 手势事件 Tabris.js有基于4种手势类型的13种手势事件: tap - 手指短暂地触摸控件时,触发一次。 longpress - 手指触摸控件一定时间(约一秒,取决于平台),抬起手指时触发。 pan - 当手指向任一方向移动一定距离(约5px,取决于平台)时,就开始连续触发。事件始终在触摸的第一个元素上触发,即使手指移动到控件之外。 panLeft - 当手指向左移动一定距离时,就开始连续触