如何检测HorizontalScrollView内部的视图何时触摸另一个视图?

吉米

因此,我尝试创建像滚动视图一样的iMovie,当滚动视图内的图像触及白线时,我想获得一个回调(以便我可以更改大图像)。我怎样才能做到这一点?

在此处输入图片说明

DroidDev

该解决方案对我有用,这也是我对Horizo​​ntalScrollView的选项进行长期研究后唯一能够解决的问题。

ImageView lineImage =(ImageView)findViewById(R.id.yourImageViewIdOfWhiteLineImage);

然后在您的horizo​​ntalScrollView的onTouchListener中

public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()){
    case MotionEvent.ACTION_MOVE:
     //get horizontal scroll view for images
    HorizontalScrollView parent=(HorizontalScrollView)v;
    //get linear layout for list of images
    LinearLayout wholeList=(LinearLayout)parent.getChildAt(0);
    int centerCord[] = new int[2];
    for(int idx=0;idx<wholeList.getChildCount();idx++){
        ImageView discoveredIv=(ImageView)wholeList.getChildAt(idx);
        discoveredTv.getLocationInWindow(centerCord);
        int discoveredX=centerCord[0];
        //set these (lineImage.getLeft()-20, lineImage.getLeft()+20) according to your 
        //requirement, the way it best suits you. You'll have to test in runtime, how your 
        //views come under the line and then set these.
        if(discoveredX >= lineImage.getLeft()-20 && discoveredX <= lineImage.getLeft()+20)
        {
            //you have a winner, take that image from imageView and set it wherever you want.
            //Your image is in discoveredIv
        }
    }
        return false;
    case MotionEvent.ACTION_UP:
        //It returns true to avoid fling effect, otherwise this method won't work.
        return true;
    }
return false;
}

这严格按照您的要求。但我建议您在ACTION_UP情况下使用此代码,因为如果在ACTION_MOVE中执行所有这些计算,则此代码有使您的应用在滚动时变慢的趋势,并且,更多的计算会使应用变慢。因此,我建议在ACTION_UP中使用它。

您可以在两种情况下都测试您的应用,然后决定在哪种情况下需要此代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何实现对一个视图拖动到另一个视图上的检测?

来自分类Dev

如何在另一个视图内部渲染视图(第4条)

来自分类Dev

如何将触摸事件传递给tableview下的另一个视图?

来自分类Dev

如何在另一个视图后面接收触摸事件?

来自分类Dev

如何从另一个视图创建视图?

来自分类Dev

如何检测用户是否从另一个虚拟树视图中拖动节点?

来自分类Dev

如何从另一个视图中调用一个烧瓶视图?

来自分类Dev

iOS:如何使一个视图触发另一个视图的更新?

来自分类Dev

iOS:如何使一个视图触发另一个视图的更新?

来自分类Dev

如何在Android的另一个视图上覆盖一个视图?

来自分类Dev

如何使一个视图覆盖Bootstrap中的另一个视图

来自分类Dev

如何在页脚的 uitable 视图的初始视图中添加另一个视图?

来自分类Dev

如何从另一个容器访问容器视图

来自分类Dev

如何访问另一个视图内的变量?

来自分类Dev

如何浏览和回到另一个视图?

来自分类Dev

如何在推上设置另一个视图

来自分类Dev

如何从另一个容器访问容器视图

来自分类Dev

如何从另一个视图访问NSStatusBar?

来自分类Dev

如何访问另一个班级的列表视图

来自分类Dev

如何使用 NavigationDestinationLink 转到另一个视图?

来自分类Dev

如何基于Android中该视图的坐标来知道一个视图何时在另一视图之上

来自分类Dev

如何通过CRM 2011内部部署中的工作流将记录从一个视图转移到另一个视图

来自分类Dev

Android:将触摸传递到浮动视图下的视图(另一个应用程序)

来自分类Dev

当键盘显示一个文本视图而不显示另一个文本视图时,如何移动视图

来自分类Dev

从另一个而非父视图获取视图

来自分类Dev

从另一个视图访问视图的功能

来自分类Dev

XAML从另一个视图启用/禁用视图

来自分类Dev

列表视图通向另一个列表视图

来自分类Dev

如何检测某个元素是否正在触摸另一个元素的边界?

Related 相关文章

  1. 1

    如何实现对一个视图拖动到另一个视图上的检测?

  2. 2

    如何在另一个视图内部渲染视图(第4条)

  3. 3

    如何将触摸事件传递给tableview下的另一个视图?

  4. 4

    如何在另一个视图后面接收触摸事件?

  5. 5

    如何从另一个视图创建视图?

  6. 6

    如何检测用户是否从另一个虚拟树视图中拖动节点?

  7. 7

    如何从另一个视图中调用一个烧瓶视图?

  8. 8

    iOS:如何使一个视图触发另一个视图的更新?

  9. 9

    iOS:如何使一个视图触发另一个视图的更新?

  10. 10

    如何在Android的另一个视图上覆盖一个视图?

  11. 11

    如何使一个视图覆盖Bootstrap中的另一个视图

  12. 12

    如何在页脚的 uitable 视图的初始视图中添加另一个视图?

  13. 13

    如何从另一个容器访问容器视图

  14. 14

    如何访问另一个视图内的变量?

  15. 15

    如何浏览和回到另一个视图?

  16. 16

    如何在推上设置另一个视图

  17. 17

    如何从另一个容器访问容器视图

  18. 18

    如何从另一个视图访问NSStatusBar?

  19. 19

    如何访问另一个班级的列表视图

  20. 20

    如何使用 NavigationDestinationLink 转到另一个视图?

  21. 21

    如何基于Android中该视图的坐标来知道一个视图何时在另一视图之上

  22. 22

    如何通过CRM 2011内部部署中的工作流将记录从一个视图转移到另一个视图

  23. 23

    Android:将触摸传递到浮动视图下的视图(另一个应用程序)

  24. 24

    当键盘显示一个文本视图而不显示另一个文本视图时,如何移动视图

  25. 25

    从另一个而非父视图获取视图

  26. 26

    从另一个视图访问视图的功能

  27. 27

    XAML从另一个视图启用/禁用视图

  28. 28

    列表视图通向另一个列表视图

  29. 29

    如何检测某个元素是否正在触摸另一个元素的边界?

热门标签

归档