java - 向 ImageView 添加滑动手势

标签 java android gestures

我正在尝试向 ImageView 添加滑动手势。我正在使用这段代码

public class MyActivity extends Activity {
private void onCreate() {
    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 static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;

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) {
            return false; // Right to left
        }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            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;
    }
}
}

但这根本行不通。日志显示 nullpointerexception,它指的是这一行 imageView.setOnTouchListener(new OnTouchListener() {

我的错误在哪里?我错过了什么吗?

最佳答案

您的 imageView 返回 null,因为您在实际获取 imageview 之前没有 setContentView()

setContentView(R.layout.yourlayout) 在获取 ImageView 之前在 onCreate 中

关于java - 向 ImageView 添加滑动手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911302/

相关文章:

java - Android Eclipse - 找不到 *.apk

android - 如何使用适用于 android 的 Windows 7 64 位操作系统使用 ndk r12 配置 FFmpeg 库

c# - 如何确定 Xamarin Forms 中水龙头的位置?

java - Android:检查设备是否能够进行 3 次或更多触摸

java - Spring Tool Suite(Eclipse)项目运行问题

java - HttpSolrServer 实例管理

java - 内部类中的接口(interface)时出现编译错误

android - textview 不居中

android - Actions on Google Android Auto 支持

xcode - 更改 XCode 4 多点触控手势