0

假设我的视图位于 Android 屏幕的 X 坐标 650 和 Y 坐标 450 上。当前 Android 屏幕的密度值为XHDPI。我应该如何转换这个坐标值,这样它就可以完全站在同一个位置,比如说MDPIXXHDPI

我试图获取原点的密度并将其转移到最终位置并进行计算,例如-> finalSourceDensity/originalDensity,在此计算之后,我尝试将接收到的 x 和 y 坐标乘以所提到的除数的结果上面但视图仍然比它需要的有很多余量。

例如,这是我现在拥有的代码。

 val densityName = client?.density ?: "mdpi"
        val densityFloat = DeviceUtils.getDeviceDensityValue(densityName)

        val dm = DisplayMetrics()
        windowManager?.defaultDisplay?.getMetrics(dm)

        val screenAdjust = dm.densityDpi / densityFloat


        val finalX = client?.charX ?: 0f * screenAdjust
        val finalY = client?.charY ?: 0f * screenAdjust

有什么线索吗?

4

0 回答 0