Вопрос

Я рисую ряд растровых изображений на холсте, и используя MotionEvents, чтобы позволить мне перетащить их вокруг.

Когда каждый элемент нажимается, я хотел бы отобразить тост или тостообразную мини-информационную панель, которая отслеживает движение растрового изображения во время Action_Move. «Тост» появится на Action_Down и исчезнет на Action_up.

Проблема с использованием тоста состоит в том, что я должен дать его длительностью, и, также не могу изменить свою позицию, как только оно будет отображаться. Если я не могу убить тост для каждого Action_Move, и отобразите новый сразу у текущих координат? (Извините, думая вслух в этот момент, не могу добраться до моей машины Dev, чтобы проверить ...)

Я не знаю, какие другие варианты могут достичь этого, и я очень ценю предсказывания от сообщества.

Это было полезно?

Решение

Надеюсь, это поможет, просто взбито, может даже компилировать!

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

Другие советы

Тост не подходит в этом случае по причинам, которые вы уже упоминали. Лучше будет определить регион на холсте и нарисовать строку сообщения там, используя RoodText. Поместите это в метод OnDaraw и позвоните в недействителен, когда вам нужно обновить текст или положение платы сообщений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top