gpt4 book ai didi

android - 如何在 ImageView 中缩放特定的 XY 坐标(点)

转载 作者:搜寻专家 更新时间:2023-11-01 09:34:26 31 4
gpt4 key购买 nike

我用过这个PhotoView自定义 ImageView 的库。我想在特定点缩放图像。这是我发现的方法是 setScale(float scale, float focalX, float focalY, boolean animate)

我想知道我可以传递什么 focalXfocalY 的值,我有 X 和 Y 坐标,我正在传递它们,它缩放到非常不同的位置。

这是一个 fragment ,

intResultX = intTotalX / intArraySize;
intResultY = intTotalY / intArraySize;
mMap.setScale(5, intResultX, intResultY, true);

最佳答案

要在 Imageview 中缩放特定的 XY 坐标,您可以传递 focalX 和 focalY 的值以及比例(必须介于 PhotoView 的最大比例和最小比例之间)和 bool 值以设置动画。

获取最大最小尺度的代码:

mPhotoView.getMinimumScale();

mPhotoView.getMaximumScale();

focalX 和 focalY 可以是屏幕上的任意点,这里我举了两个例子,一个是屏幕中心,一个是左上角。以下是两种情况的代码。

代码:

Random r = new Random();
float minScale = mPhotoView.getMinimumScale();
float maxScale = mPhotoView.getMaximumScale();
float randomScale = minScale + (r.nextFloat() * (maxScale - minScale));

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
int centerX=width/2;
int centerY =height/2;

/*pass a value of focalX and focalY to scale image to center*/
//mPhotoView.setScale(randomScale, centerX, centerY, true);

/*pass a value of focalX and focalY to scale image to top left corner*/
mPhotoView.setScale(randomScale, 0, 0, true);

关于android - 如何在 ImageView 中缩放特定的 XY 坐标(点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528361/

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