Заставьте битмапы слушать сенсорные события - PullRequest
0 голосов
/ 25 июня 2010

Как добавить сенсорные возможности в простое растровое изображение ?

Я пытался создать класс-оболочку для растрового изображения ,
, в котором реализовано OnGestureListener,
, но это не сработало.

Я хочу избежать расширения класса View для достижения этой цели.

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 июня 2010

Есть ли у вас реализация OnGestureListener, связанная с GestureDetector?GestureDetector анализирует MotionEvent и вызывает соответствующий обратный вызов для слушателя в зависимости от типа найденного движения.

public class MyActivity extends Activity {
    private GestureDetector detector;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ...
        detector = new GestureDetector(new MyGestureListener());
        ...
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return detector.onTouchEvent(event);
    }
}
1 голос
/ 25 июня 2010

A Bitmap само по себе является просто представлением изображения ... таким образом, чтобы показать его, вам придется где-то нарисовать его (a View, фактически вы всегда рисуете его на View ). Тогда нет способа избежать использования класса View, поскольку все виджеты пользовательского интерфейса расширяют его.

В заключение, если вы хотите просто установить сенсорных слушателей на один Bitmap, вы можете, например, нарисовать его на ImageView и установить соответствующих слушателей. С другой стороны, если у вас где-то нарисован набор растровых изображений (например, на SurfaceView), вы должны найти растровое изображение по его координатам (в этом случае View, который получит события, будет SurfaceView).

...