znl_12 2013-07-29 09:27 采纳率: 0%
浏览 860

移除 gallery 中的刷新效果

我开发了一个自定义的 gallery,然后重写了 on-fling方法,每次刷新一个图像。能运行,但是现在的问题是当我从上到下刷新或者从下到上时,图像就刷新了,因此也改变了。

public class mygallery extends Gallery {
public mygallery(Context ctx, AttributeSet attrSet) {
    super(ctx, attrSet);
}
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
    return e2.getX() > e1.getX();
}
private boolean isScrollingRight(MotionEvent e1, MotionEvent e2){
    return e2.getX() < e1.getX();
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    int kEvent=0;
    if (isScrollingLeft(e1, e2)) { // Check if scrolling left
        kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
    } else if(isScrollingRight(e1, e2)) { // Otherwise scrolling right
        kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
    } 
    onKeyDown(kEvent, null);
    return true;
}
}

要怎么做才能当我从上到下刷新或者从下到上时,图像不改变?

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 14:27
    关注

    如果你想在用户从上到下或者从下到上时,不改变图像,你可以在 onFling 方法中加入判断条件,如果手势是从上到下或者从下到上时,就不调用 onKeyDown 方法。

    下面是一个例子:

    private boolean isScrollingUp(MotionEvent e1, MotionEvent e2) {
        return e2.getY() < e1.getY();
    }
    
    private boolean isScrollingDown(MotionEvent e1, MotionEvent e2) {
        return e2.getY() > e1.getY();
    }
    
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        int kEvent = 0;
        if (isScrollingLeft(e1, e2)) { // Check if scrolling left
            kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
        } else if (isScrollingRight(e1, e2)) { // Otherwise scrolling right
            kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
        } else if (isScrollingUp(e1, e2) || isScrollingDown(e1, e2)) {
            // Do nothing
        }
        onKeyDown(kEvent, null);
        return true;
    }
    

    这样,当用户从上到下或者从下到上时,就不会调用 onKeyDown 方法,图像也就不会改变了。

    评论

报告相同问题?

悬赏问题

  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测