Как я могу реализовать функцию Android Touch? - PullRequest
4 голосов
/ 27 февраля 2011

Привет, я хочу создать приложение, которое загружает большое изображение, и простым жестом я могу перемещаться по нему. Я должен распечатать изображение, но не могу реализовать onTouch, поэтому он остается неподвижным. Любая помощь адресована. Спасибо

Мой код для вытягивания картинки:

@Override protected void onDraw(Canvas canvas) {
          super.onDraw(canvas);
                   Paint paint = new Paint();
            paint.setStyle(Paint.Style.FILL);

            // make the entire canvas white
            paint.setColor(Color.WHITE);
            canvas.drawPaint(paint);
paint.setStrokeWidth(1);
            paint.setPathEffect(null);
            paint.setColor(Color.GRAY);
            paint.setAntiAlias(true);


            for (int i=1; i < 100; i++){
                canvas.drawLine(0, i*1 , 600, i*20, paint);
                canvas.drawLine(i*1 ,0, i*20, 600, paint);      
            }
}

Ответы [ 2 ]

6 голосов
/ 27 февраля 2011

Поскольку вы уже пишете пользовательское представление, вместо установки слушателя вы можете захотеть включить GestureDetector и слушателя в ваше представление, и, прежде всего, избегать действия switch(e.getAction()), потому что OnGestureListener включенболее высокий уровень и предоставит вам событие, уже определенное как жест (прокрутка, бросание, долгое нажатие ...).

См. пример здесь .

3 голосов
/ 27 февраля 2011

По вашему мнению, вам нужно создать OnTouchListener, который должен выглядеть примерно так:

myView.setOnTouchListener(new View.OnTouchListnener(){
    @Override
    public boolean onTouch(View v, MotionEvent e){
        switch(e.getAction()){
        case MotionEvent.ACTION_DOWN:
        //and code will go here for putting the finger on the screen

Я бы посмотрел на MotionEvent и посмотрел на разные уровни. Вы хотите обратить внимание на то, как он может упаковать несколько бит информации о движении в один MotionEvent.

...