假设我在Android屏幕上的X坐标为650,Y坐标为450。当前的Android屏幕的密度值为 XHDPI 。我应该如何转换此坐标值,以使其完全位于同一位置,例如 MDPI 和 XXHDPI ?
我试图获取原点的密度并将其转移到最终位置,并进行如下计算: -> 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
有任何线索吗?