2

我已经在我的 Android 应用程序中使用 . 这很好用,除了我想在滚动手势上滚动到下一个图像(现在它只是在减速之前滚动过去几个图像)。我找不到合适的方法来做到这一点,我应该改用 FrameLayout 吗?如何在滚动手势上滚动到下一个(或上一个)图像?

4

3 回答 3

2

从您的描述看来,现在您的幻灯片已实现为滚动视图中的一系列图像,对吗?

与其将其放置在滚动视图中并允许该视图进行滚动,不如显示单个图像并监听图像上的投掷或滚动手势(请参阅文档)。当您检测到手势时,您可以手动更改图像。

如果您希望它为出现在屏幕上的图像设置动画,您可以使用动画

于 2010-02-18T17:14:00.283 回答
1

这就是我最终使用的

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    // TODO Auto-generated method stub

    if (velocityX <= 0 ){
        // hack - send event to simulate right key press
        KeyEvent rightKey  = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
        this.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, rightKey);

        rightKey = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_RIGHT);
        this.onKeyUp(KeyEvent.KEYCODE_DPAD_RIGHT, rightKey);            

    }else{
        // hack - send event to simulate left key press
        KeyEvent leftKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT);
        this.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, leftKey);

        leftKey = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_LEFT);
        this.onKeyUp(KeyEvent.KEYCODE_DPAD_LEFT, leftKey);
    }


    // your callback activity if you have one:
    if( callbackActivity != null ){
        callbackActivity.didFlingGallery();
    }

    return true;
}
于 2010-06-15T02:11:28.143 回答
0

您发布问题的那一刻,您就知道答案了!我从使用 Gallery 到 Horizo​​ntalScrollView 回到使用 Gallery。只是显示我的n00bness。Gallery 很好地解决了我的问题。我有一个自定义类,它扩展了 Gallery 并覆盖了 onFling(...)。在此将velocityX重置为-300或300,具体取决于方向,这将导致滚动到下一个“页面”。

于 2010-02-19T16:37:36.783 回答