Коснитесь прокрутки на View Flipper в Android? - PullRequest
4 голосов
/ 08 июля 2010

Мне нужно добиться того, чтобы Touch Scroll на ViewFlipper. Например. У меня есть два изображения. Сначала ViewFlipper показывает первое изображение. Теперь я бросил вид справа налево. Представление «Первое изображение» Сдвиньте влево, а «Второе» - слева. Я могу добиться этого этим сообщением . Но я хочу прокрутить изображение. То есть на событии Action_Move я хочу сделать Touch Scroll. Например, когда я перемещаю сенсор справа налево, он будет швырять, насколько сенсор движется. в это время на выходе должны быть показаны оба изображения частично.

Как это сделать? Что я должен измерить уровни экрана (высота и ширина). Примеры кодов более полезны.

Ответы [ 2 ]

1 голос
/ 26 июля 2012
package com.appaapps.flipper;

import android.app.Activity;
import android.content.Context;
import android.graphics.*;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ViewFlipper;
//------------------------------------------------------------------------------
// Flipper - Philip R Brenan at gmail.com
//------------------------------------------------------------------------------
public class FlipperActivity extends Activity {
    ViewFlipper f;
    DrawView a, b, c;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        f = new ViewFlipper(this);
        a = new DrawView(this, "aaaaa");
        b = new DrawView(this, "BBBBB");
        c = new DrawView(this, "ccccc");
        f.addView(a);
        f.addView(b);
        f.addView(c);
        setContentView(f);
    }
    //------------------------------------------------------------------------------
    // Draw 
    //------------------------------------------------------------------------------
    class DrawView extends View implements View.OnTouchListener {
        final String text;
        DrawView(Context Context, String Text) {
            super(Context);
            text = Text;
            setOnTouchListener(this);
        }
        public void onDraw(Canvas Canvas) {
            super.onDraw(Canvas);
            Paint p = new Paint();
            p.setColor(0xffffffff);
            p.setTextSize(20);
            Canvas.drawText(text, 0, 20, p);
        }
        public boolean onTouch(View v, MotionEvent event) {
            final int a = event.getAction();
            if (a == MotionEvent.ACTION_DOWN) {
                final int i = f.getDisplayedChild(), n = f.getChildCount();
                f.setDisplayedChild((i + 1) % n);
            }
            return true;
        }
    }
}
0 голосов
/ 08 февраля 2011

Если вам нужно обнаружить прокрутку только на видоискателе, который не занимает весь экран, попробуйте следующее

gestureDetector = new GestureDetector(new MyGestureDetector());

viewFlipper.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (gestureDetector.onTouchEvent(event)) {
                return false;
            }
            return true;
        }
  });

, и MyGestureDetector будет таким же, как в http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/

...