Перетащите перекрывающийся ImageView в Android - PullRequest
3 голосов
/ 05 июля 2010

У меня есть настольная игровая доска, состоящая из 10х10 квадратов. Каждый квадрат - изображение PNG. Поверх этих квадратов я хочу разместить плитки, которые можно перетаскивать поверх квадратов.

Какой мой лучший подход к представлениям?

Возможно ли иметь два слоя, где первый слой - это сетка ImageView, представляющая плату. Тогда можно ли будет позволить плитке быть также ImageView, который может быть «сложен» поверх ImageView, представляющего плату?

Любые хорошие идеи дизайна приветствуются!

Спасибо.

/ Henrik

Ответы [ 2 ]

3 голосов
/ 09 декабря 2010

Переопределение onTouchEvent в вашем представлении:

@Override
public boolean onTouchEvent(MotionEvent event) {
    super.onTouchEvent(event);

    if (!mEnable) {
        return false;
    }

    int action = event.getAction();
    int x = (int)event.getX();
    int y = (int)event.getY();

    switch (action) {
    case MotionEvent.ACTION_DOWN:
        onTouchActionDown(x, y);
        break;
    case MotionEvent.ACTION_MOVE:
        onTouchActionMove(x, y);
        break;
    case MotionEvent.ACTION_UP:
        onTouchActionUp(x, y);
        break;
    }

    return true;
}

Затем в onTouchActionUp / Down просто используйте координаты и перерисовайте ваш ресурс изображения, то есть недействительный () ваш вид.

Переопределите onDraw, чтобы нарисовать перетаскиваемый рисунок:

@Override
protected void onDraw(Canvas canvas)
   drawMyDragGfx();
}
2 голосов
/ 12 июля 2010

Я сделал переопределение на onDraw и onTouchEvent в моем просмотре.Т.е. я сам перетаскивал рисунок.

Работал как шарм: -)

...