2010-02-18 114 views
2

我已经在我的Android应用程序中使用幻灯片放映。除了我想滚动到滚动手势上的下一个图像(现在只是在减速之前滚动几张图像)之外,这种方法运行良好。我找不到合适的方法来做到这一点,我应该使用FrameLayout吗?如何滚动到滚动手势上的下一个(或上一个)图像?Android Horizo​​ntalScrollView滚动页

回答

2

从您的描述中,它听起来像是现在您将幻灯片放映作为scrollview中的一系列图像实施,是正确的吗?

与其将其放置在滚动视图中并允许该视图执行滚动操作,您可以显示单个图像并在图像上聆听图像上的一个方块或滚动手势(请参阅documentation)。当您检测到手势时,您可以手动更改图像。

如果您希望它为进入屏幕的图像设置动画效果,您可以使用animation

+0

手势文档链接是不正确(http://www.govavi.com/locations.php?location_id=111&utm_source=league_welcome)你仍然有正确的链接? – ohhorob

+0

@ohhorob嘿,woops,对不起。我不确定链接应该指向什么,但可能只是android文档:http://developer.android.com/reference/android/view/View.OnTouchListener.html –

0

当你发布一个问题你意识到答案的时刻!我从使用Gallery到Horizo​​ntalScrollView回到使用Gallery。只是显示我的性格。画廊很好地解决了我的问题。我有一个扩展Gallery的自定义类并覆盖onFling(...)。在这里根据方向将velocityX重置为-300或300,这导致滚动到下一个“页面”。

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; 
} 
+0

你应该选择一个有效的回答你的问题,如果你认为它的回答是正确的 –

相关问题