SLaks 2013-07-01 06:03 采纳率: 0%
浏览 2053

如何改变 gallery 的 scrollview

MyGallery gallery = (MyGallery)findViewById(R.id.gallery_photo);
PhonePhotoViewerAdapter = new PhonePhotoViewerAdapter(this, FilePath);
gallery.setAdapter(PhonePhotoViewerAdapter);
gallery.setSelection(0);

我使用上面的代码用 scrollview 来显示照片。
但是如果我想显示下一个照片,我得在屏幕上用手指划很长的距离。
我想短距离滑动来变换。
如何实现?
我修改了 Gallery:

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX() - e2.getX() > 50  && Math.abs(velocityX) > 100) {    
// Fling left 
} else if (e2.getX() - e1.getX() > 50 && Math.abs(velocityX) > 100) {    
// Fling right 
}  
return false;
}

如下:

gallery.setLongClickable(false);
gallery.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            int action = event.getAction();
            if((action == MotionEvent.ACTION_DOWN) && !Clicking) {
                StartX = event.getX();
                StartIndex = gallery.getSelectedItemPosition();
                Clicking = true;
            }
            else if((action == MotionEvent.ACTION_UP) && Clicking) {
                EndX = event.getX();
                EndIndex = gallery.getSelectedItemPosition();
                Clicking = false;
                if(((EndX - StartX) > 50) && (StartIndex == EndIndex)) {
                    if(EndIndex > 0) {
                        gallery.setSelection(EndIndex - 1);
                    }
                }
                else if(((StartX - EndX) > 50) && (StartIndex == EndIndex)) {
                    if(EndIndex < count - 1) {
                        gallery.setSelection(EndIndex + 1);
                    }
                }               
            }
            return false;
        }
    });

但是显示还是不正常。

  • 写回答

1条回答

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog