Je suis un nouveau débutant dans android et je veux faire un programme simple qui détecte les coordonnées tactiles et dessiner un cercle et le chemin du toucher, je fais un programme simple qui dessine un cercle autour du toucher et suivre mais je peux toujours faire le chemin du toucher. Quand je commence le programme avec le chemin planter, quand je supprimer le chemin il fonctionne normal ...Toile dessiner le chemin dans android
public class MainActivity extends Activity {
float x = 0;
float y = 0;
LinearLayout layout; //declarea variabilor pentru desenarea cercului
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //specificarea
layout = (LinearLayout)findViewById(R.id.layout); //gasirea id
layout.addView(new CustomView(MainActivity.this));
}
public class CustomView extends View { //crearea unei mape pentru canvas
Bitmap mBitmap;
Paint paint;
Path path;
public CustomView(Context context) {
super(context);
mBitmap = Bitmap.createBitmap(640, 1024, Bitmap.Config.ARGB_8888);
paint = new Paint();
path = new Path();
paint.setColor(Color.BLUE);//culoare cercului desenat
paint.setStyle(Style.FILL);
}
protected void onDraw(Canvas canvas) {//desenarea cercului la atingere
super.onDraw(canvas);
canvas.drawPath(path,paint);
canvas.drawCircle(x, y, 25, paint);
}
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
path.moveTo(event.getX(), event.getY());
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
x = event.getX();
y = event.getY();
path.lineTo(x, y);
invalidate();
break;
case MotionEvent.ACTION_UP:
path.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Où «x» et «y» sont-ils déclarés? Qu'est-ce qui se passe avec votre code et que devrait-il se passer? –
x et y sont pour le centre du cercle qui est dessiner lorsque l'écran tactile, le programme doit détecter toucher et montrer une coordonnées de l'écran et dessiner un cercle autour du toucher et le chemin pour siwpe tactile – user2112285
Je l'ai eu. J'ai demandé où 'x' et' y' sont déclarés, pas à quoi ils servent. Vous devez fournir un peu plus de détails sur le problème auquel vous êtes confronté. Vous n'avez pas expliqué ce qui se passe réellement lorsque vous exécutez votre code. Est-ce qu'un cercle est dessiné du tout? Est-ce qu'il bouge quand le toucher bouge? Comme c'est le cas, votre message n'est pas beaucoup mieux que "Voici mon code, ça ne marche pas, comment puis-je le réparer?" –