0

有人知道如何在java中更改android应用程序的密度Dpi吗?

我正在开发一个 android 应用程序,我在其中操纵视点标记中的目标密度。这在应用程序的某些地方引起了一个小问题,目标密度似乎被软键盘重置。

所以我需要一种方法来重置它,或者防止键盘改变密度。

4

1 回答 1

0

对于 lenovo A1(240dpi 密度的平板电脑)或 Galaxy Note 等设备,您可能需要在您的应用程序中执行此操作,以避免在不同设备上看起来像它的大小不同。

将以下函数添加到您的扩展应用程序类并从 onCreate 调用它:

public void changeDensity(float desiredDensity) {
    //desiredDensity : ldpi = 0.75 (120dpi) , mdpi = 1 (160dpi), hdpi = 1.5 (240dpi), xhdpi = 2.0 (320dpi)
    DisplayMetrics metrics = getResources().getDisplayMetrics();

    metrics.density = desiredDensity;
    metrics.xdpi = desiredDensity * 160;
    metrics.ydpi = desiredDensity * 160;
    metrics.densityDpi = (int) (desiredDensity * 160);

    getResources().updateConfiguration(null, null);
}
于 2012-08-22T16:10:56.923 回答