微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Android 中平滑滚动到自定义视图

如何解决在 Android 中平滑滚动到自定义视图

我正在创建扩展表面视图的自定义视图。 View 用于水平显示视频缩略图,用作视频的时间线。我想为这个自定义视图添加平滑滚动。我曾尝试从 androidx 中抛出动画类 https://developer.android.com/guide/topics/graphics/fling-animation 但这用于滚动整个视图。并且仅以图形方式使用此翻转视图视图是动画,但其值保持不变。或者,我尝试使用手势侦听器,但 ufotunatilly。没有工作,任何人都可以在这件事上指导我。

我真正想要的平滑滚动

What i want

实际工作

stuck when acion_up called

public class TimelineView extends SurfaceView

touchmove 事件方法

  f2 = ((float) this.timeFullWidth) / ((float) this.viewWidth);
        j2 = this.startTouchTime - ((long) (f2 * (f - this.startTouch.x)));
        this.currentTime = j2;

        if (j2 < mediaList.get(0).getStartTrim()) {
            this.currentTime = glitchCamEditorMediaList.get(0).getStartTrim();
        }

        if (j2 > mediaList.get(0).getEndTrim()) {
            this.currentTime = glitchCamEditorMediaList.get(0).getEndTrim();
        }

================================================ ==============================

    public void onDraw(Canvas canvas) {

        int i = 0;
        for (Media media: this.mediaList) {
            long j = this.currentTime;
            int i2 = this.timeFullWidth;
            long j2 = j - ((long) (i2 / 2));
            if (media.getStartTimeLine() < j + ((long) (i2 / 2)) && media.getEndTrim() > j2) {
                drawCard(canvas,media);
            }
            i++;
        }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。