将像素从一种密度转换为另一种

时间:2019-07-04 14:01:06

标签: android pixel screen-density

假设我在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

有任何线索吗?

0 个答案:

没有答案