gpt4 book ai didi

java - 缩放持续到下一个 ImageView

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

我有一个非常烦人的问题。希望你能帮助我。

我的应用程序的这一部分很简单。当用户点击“下一个”或“上一个”按钮时, ImageView 会切换到上一个或下一个可用图像。它效果很好,但前提是用户不使用多点触控来缩放图像。请检查下面的图片,看看我的问题是什么。我正在使用 TouchImageView 库来缩放图像。

图像 1:这是正常状态下的图像。

enter image description here

图像 1 - 缩放:用户决定使用多点触控,因为它想要缩放图像。

enter image description here

图像 2:用户点击“下一个”按钮,但屏幕上会出现下一个图像,但它处于“缩放”状态(来自上一个图像)。

enter image description here

相反,它应该是这样的:

enter image description here

有谁知道如何“重置”图像,即使当前图片已缩放,下一张图片也不应缩放?

最佳答案

假设您正在谈论 this TouchImageView ,您可以添加一个将逻辑包装在其中的方法

public boolean onScale(ScaleGestureDetector detector);

在名为 setScaleFactor(float scaleFactor, float focusX, floatY); 的方法中;

这样,onScale 方法就会像这样。-

@Override
public boolean onScale(ScaleGestureDetector detector) {
float mScaleFactor = detector.getScaleFactor();
setScaleFactor(mScaleFactor, detector.getFocusX(), detector.getFocusY());

return true;
}

你可以打电话

setScaleFactor(1.0f, 0.5f, 0.5f);

“重置”秤。

编辑

假设您正在使用上面链接中给出的 TouchImageView 实现,setScaleFactor 将如下所示。-

public void setScaleFactor(float mScaleFactor, float focusX, float focusY) {
float origScale = saveScale;
saveScale *= mScaleFactor;
if (saveScale > maxScale) {
saveScale = maxScale;
mScaleFactor = maxScale / origScale;
} else if (saveScale < minScale) {
saveScale = minScale;
mScaleFactor = minScale / origScale;
}

if (origWidth * saveScale <= viewWidth || origHeight * saveScale <= viewHeight) {
matrix.postScale(mScaleFactor, mScaleFactor, viewWidth / 2, viewHeight / 2);
} else {
matrix.postScale(mScaleFactor, mScaleFactor, focusX, focusY);
}
fixTrans();
}

关于java - 缩放持续到下一个 ImageView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788988/

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