如何创建图像滑块?

时间:2013-12-27 10:46:55

标签: android slider

如何在eclipse中创建图像滑块?

我想,当手指在imageView上从左向右移动或从右向左移动时,我想要更改照片。

2 个答案:

答案 0 :(得分:1)

不需要做任何自定义的事情。因为Android在ViewFlipper类中提供了这样的工具。它实际上是为它做的。  

查看翻转器: -

  

简单的ViewAnimator,可以在两个或多个视图之间设置动画   已添加到它。一次只能展示一个孩子。如果   要求,可以在每个孩子之间自动翻转   间隔。

非常好,也内置了对动画的支持,所以只需将它用于此目的。 要在您的应用程序中实现ViewFlipper,我正在分享一些很好的教程..

  • http://javatechig.com/android/android-viewflipper-example
  • http://www.yogeshblogspot.com/android-viewflipper-example/
  • http://learnandroideasily.blogspot.in/2013/06/android-viewflipper-example.html

    您还可以在此处获取更多信息。 http://developer.android.com/reference/android/widget/ViewFlipper.html

    享受..!

  • 答案 1 :(得分:0)

    查看寻呼机refer this是一个选项,否则您可以在图像视图中添加一个简单的手势监听器。

    //将手势监听器添加到图像视图。

    final GestureDetector gdt = new GestureDetector(new GestureListener());
            final ImageView imageView  = (ImageView) findViewById(R.id.image_view);
            imageView.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(final View view, final MotionEvent event) {
                    gdt.onTouchEvent(event);
                    return true;
                }
            });
    

    //手势监听器类

      private class GestureListener extends SimpleOnGestureListener {
                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                    if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    //load previous image here
                        return false; // Right to left
                    }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    //load next image here
                        return false; // Left to right
                    }
    
                    if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
                        return false; // Bottom to top
                    }  else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
                        return false; // Top to bottom
                    }
                    return false;
                }
            }