Question

Je dessine un certain nombre de bitmaps sur une toile, et en utilisant MotionEvents pour me laisser traîner.

Lorsque chaque élément est pressé, je voudrais afficher un toast, ou, Toast-like mini-panneau d'information qui permet de suivre le mouvement de l'être au cours d'une bitmap traîné ACTION_MOVE. Le "Toast" apparaît sur ACTION_DOWN et disparaître sur ACTION_UP.

Le problème avec l'aide de Toast est que je dois lui donner une durée, et, aussi, je ne peux pas changer sa position une fois qu'il a été affiché. À moins que je peux tuer le Toast pour chaque ACTION_MOVE, et afficher un nouveau tout de suite aux coordonnées actuelles? (Désolé, penser tout haut à ce moment, ne peut pas arriver à ma machine dev pour tester ...)

Je ne sais pas ce que d'autres options il pourrait y avoir pour y parvenir, et je serais très reconnaissants des suggestions de la communauté.

Était-ce utile?

La solution

Hope this helps, juste fouetté vers le haut, pourrait même compiler!

private boolean mDragging = false;
private float mTouchX = 0, mTouchY = 0;
private Paint mTextPaint = new Paint();//need to set this up in onCreate!

public boolean onTouchEvent(MotionEvent event)
{
  mTouchX = event.getX();
  mTouchY = event.getY();

  if(event.getAction() == ACTION_DOWN)
  {
    mDragging = true;
  }
  else if(event.getAction() == ACTION_UP)
  {
    mDragging = false;
  }

  return true;
}

protected void onDraw (Canvas canvas)
{
  /* Put all your bitmap drawing here. */

  /* Draw some info text on top of everything else. */
  if(mDragging)
  {
    String text = mTouchX + ", " + mTouchY;
    canvas.drawText(mTouchX, mTouchY + 50, text, mTextPaint);
  }
}

Autres conseils

A Toast ne convient pas dans ce cas, pour des raisons que vous avez déjà mentionné. Il sera préférable de définir une région sur la toile et d'en tirer la chaîne de message il utilisant drawText. Mettre cela dans la méthode onDraw et appeler invalidate chaque fois que vous devez mettre à jour le texte ou la position du conseil d'administration de message.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top