有人知道如何在java中更改android应用程序的密度Dpi吗?
我正在开发一个 android 应用程序,我在其中操纵视点标记中的目标密度。这在应用程序的某些地方引起了一个小问题,目标密度似乎被软键盘重置。
所以我需要一种方法来重置它,或者防止键盘改变密度。
对于 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);
}