Android 如何放大或缩小矩形

Android 如何放大或缩小矩形,android,kotlin,Android,Kotlin,我正在从后端获取一个图像。与图像的URL一起出现的是图像中特定点的Rect坐标。现在,图像非常大,因此当显示在图像视图上时,它会缩小 这就是问题所在,从后端发送的Rect坐标不会打印到图像上的相同位置 不管怎样,我能缩小或者放大一个直角坐标吗 我看到了类似的答案,但似乎没有解决问题的方法。好的,您可以为此创建一个函数: private fun scale(rect: Rect, factor: Float) { val diffHorizontal = (rect.right - rec

我正在从后端获取一个图像。与图像的URL一起出现的是图像中特定点的Rect坐标。现在,图像非常大,因此当显示在图像视图上时,它会缩小

这就是问题所在,从后端发送的Rect坐标不会打印到图像上的相同位置

不管怎样,我能缩小或者放大一个直角坐标吗


我看到了类似的答案,但似乎没有解决问题的方法。

好的,您可以为此创建一个函数:

private fun scale(rect: Rect, factor: Float) {
    val diffHorizontal = (rect.right - rect.left) * (factor - 1f)
    val diffVertical = (rect.bottom - rect.top) * (factor - 1f)

    rect.top -= (diffVertical / 2f).toInt()
    rect.bottom += (diffVertical / 2f).toInt()

    rect.left -= (diffHorizontal / 2f).toInt()
    rect.right += (diffHorizontal / 2f).toInt()
}

这是我编辑的答案。

请更新您的问题和标签,说明您使用的是Java还是Kotlin,好吗?@AnthonyCannon我已经完成了。谢谢Hanks,我已经将代码转换为Kotlin。对不起,我正在使用带有ImageView的FrameLayout子类谢谢你的回答。但是我如何获得比例因子呢?这取决于,你能用你的ImageView xml代码更新你的问题吗?我正在使用自定义视图来显示图像。我尝试使用初始(未缩放)位图的纵横比(宽度/高度)作为因子,但它不起作用,但我需要知道当你说“在图像视图上显示时,它被缩小了”时,它是如何缩放的。。它是如何缩放的?我正在使用FrameLayout的一个子类。我以编程方式创建了ImageView,并将其作为子项添加到FrameLayout中。因此,当我使用Glide将图像加载到ImageView中时,它会缩小。