Comment récupérer la position d'un clic sur une View ?
Bonjour,
J'ai les bouts de code suivants :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class MainActivity extends AppCompatActivity implements View.OnTouchListener, View.OnClickListener {
private Button bParam = null;
private BalleView balle = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
bParam = (Button) findViewById( R.id.param );
bParam.setOnClickListener( this );
balle = (BalleView) findViewById(R.id.balle); //Je récupère l'objet balleView depuis le layout
balle.setOnClickListener( this ); //Je défini quel est le listener qui réagira à un click sur balleView
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
@Override
public void onClick(View v) {
float x,y;
switch(v.getId()) {
case R.id.param:
BalleView.rayon += 10;
break;
case R.id.balle:
if (BalleView.rayon > 11) BalleView.rayon -= 10;
Toast.makeText(getBaseContext(),"x = " +String.valueOf(v.getX()) + "," + " y = " +String.valueOf(v.getY()) ,Toast.LENGTH_SHORT).show();
BalleView.xTN = v.getX();
BalleView.yTN = v.getY();
break;
}
} |
Ça fonctionne, sauf que v.getX() et getY() me renvoient systématiquement zéro.
Trouvez l'erreur ! j'y ai passé quelques heures, mais je ne trouve pas.
Merci de vos lumières !
Bernard