Je me demandais s'il était possible d'avoir un ImageView sur un GLSurfaceView et d'obtenir les événements tactiles respectifs des deux. Mon problème est que je veux savoir quand l'ImageView est pressé (ainsi j'utiliserais un OnTouchListener). Mais encore, je veux être en mesure d'obtenir le touchEvents de mon GLSurfaceView.Touch Events ImageView + GLSurfaceView
Ce que j'ai essayé est de supprimer la mise en œuvre de onTouchEvent de mon GLSurfaceView et faire la classe implémente OnTouchListener et mettre en œuvre onTouchsuch comme:
OnTouch public boolean (Voir v, événement MotionEvent) { action int = événement. getAction();
if(v.getId() == R.id.ImageView ;){
switch (action) {
case MotionEvent.ACTION_DOWN:
//Do something
break ;
//....
}
}
else{
//Process GLSurfaceView touch events
}
}
Le problème quand je fais cela est que je ne peux pas toucher combiner mon imageView et toucher mon GLSurfaceView qui est ce que je veux vraiment atteindre. J'ai donc essayé d'ajouter un contrôle sur le nombre de doigts, mais je n'arrive toujours pas à le faire fonctionner car un seul doigt est détecté lorsque je touche à la fois l'ImageView et le GLSurfaceView. Maintenant, c'est difficile à expliquer mais quand je mets un doigt sur l'imageView et un autre doigt sur mon GLSurfaceView, mon morceau de code dans la partie else est appelé avec la position du doigt sur l'ImageView, et pas l'autre . Un exemple de cas d'utilisation serait: Imaginez que j'utilise mes deux mains tout en tenant la tablette. Si j'appuie sur cette ImageView avec mon pouce sur la main gauche, je veux que les mouvements du doigt de mon pouce droit sur l'écran effectuent des rotations au lieu des traductions ou quelque chose comme ça. Donc, je me demandais ce qui n'allait pas dans ma mise en œuvre jusqu'à maintenant. Peut-être que je ne considère pas le problème correctement. Dans ce cas, je serais heureux de savoir ce qui ne va pas et de mettre en œuvre correctement ce genre de choses.
Merci à l'avance,
Edit: Voici mon 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
sont les limites de vue de ces deux vues mêmes? Aussi qui est sur le dessus? – Bhargav
@Bhargav n'a pas tout à fait votre première question. L'ImageView est en haut. Venant modifier pour ajouter mon contenu activity_main.xml – LBes
ce qui signifie que le ImageView est complètement couvrant sur la vue de surface? SI c'est le cas, votre SurfaceView ne peut jamais prendre le focus – Bhargav