gpt4 book ai didi

Android - Seekbar 自定义进度缩放

转载 作者:行者123 更新时间:2023-11-29 01:15:15 25 4
gpt4 key购买 nike

我正在尝试修改我的搜索栏行为,使其更类似于 iOS 系统,在 iOS 系统中,只要您远离 y 坐标中的搜索栏矩形,它就会减慢您的搜索进度。当您返回搜索栏时,它会将您的进度缩放比例更新为您所在的位置,当您触摸搜索栏时,您的搜索栏 x 滑动/进度条的比例为 1/1。

我想实现这样的事情:当你在搜索栏上说 50 像素(在 y 方向)时,我的比例因子应该是 3/1:当你在 x 方向上移动 3 个像素时,你的搜索栏显然,应该根据您的 x 轴符号移动 1 个像素。总而言之,像 ipod 音乐跟踪搜索栏或视频播放器(我认为 Android 版 MX 播放器有我正在寻找的东西)。

有办法吗?

我尝试的是重写 seekbar.setOnTouchListener,但从这里我不知道我可以做些什么来模拟这样的事情。我认为与 seekbar.setOnSeekBarChangeListener 相关...如何覆盖手势检测和进度条计算之间的“链接”,我可以在 setOnSeekBarChangeListener.OnProgressChanged 方法中找到相同的进度条?有没有像 seekbar.setScalingProgressFactor 这样的方法,可以根据 y 坐标沿 x 轴施加 3/1 像素的比例?

我希望我的问题足够清楚。

提前致谢!

最佳答案

在您的 Activity 的 OnTouch 中,使用:

int x = event.getX(), y = event.getY();

然后,使用以下方法检查 y 坐标的距离:

int distance = mySeekbarY - y;
if (distance == 0) {
double ScalingFactor = 1;
else {
double ScalingFactor = 50/(3*Math.abs(distance));
}

当点击距离为 50px 时,距离变为 50。将 50 代入公式,我们得到 50/(3*50) = 1/3,如您所愿。我们需要 if-else 语句来处理距离为 0 的情况。将 0 代入公式将得到 50/0,这会给你一个错误。现在做:

double toMove = (x-mySeekbarX)*ScalingFactor;

然后将 toMove 添加到搜索栏的 X 坐标。 :D

希望我能帮上忙 :D

关于Android - Seekbar 自定义进度缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com