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

J'ai utilisé la méthode ci-dessus pour charger une image pour le menu principal que j'essaie de créer. L'image a quatre zones et chacune sera utilisée pour appeler une fonction particulière de l'application. Maintenant j'essaye d'implémenter l'interface tactile sur ces secteurs. Je sais comment définir la plage de pixels à cet effet, mais je suis à la perte sur la façon d'implémenter OnTouchListner sur l'image. S'il vous plaît aidez-moi à cet égard.Implémentation de OnTouchListener sur LinearLayout - Développement Android

Répondre

4

Si votre image a été divisée en quatre quartiers rectangulaires (par exemple)

puis à onCreate ont:

i.setOnTouchListener(this); 

et pour votre écoute, quelque chose comme ceci (illustre le principe uniquement):

@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; 
} 
+0

Merci beaucoup @NickT. C'était exactement ce que je demandais. Depuis que je suis nouveau sur le développement Android, je ne savais pas comment implémenter l'écouteur sur l'image. Merci encore. – Rafay

-3

Placez simplement ce code dans onCreate().

i.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //your code 
    } 
} 
+1

il veut cliquer sur l'image dans différents domaines, il ne pouvait pas réaliser que cette façon ... – Knickedi

+0

Ya c'est ce que j'essaie de mettre en œuvre – Rafay