Android在java中更改densityDPI

时间:2012-08-09 00:05:45

标签: android keyboard viewport dpi

任何人都知道如何在java中更改android应用程序的densityDpi?

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

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

1 个答案:

答案 0 :(得分: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);
}
相关问题