我可以通过编程方式更改设备DPI吗?

Mik*_*oos 4 android

我想知道我是否可以更改设备,它决定应该选择哪个布局或者应该选择/缩放哪个图形.此更改只会影响我的应用程序.我能以某种方式设置DPI吗?

我之所以这样做的原因是这款手机:http://www.gsmarena.com/samsung_p1000_galaxy_tab-3370.php它的DPI值非常差240DPI,而它只有170PPI,应该被认为是160DPI设备.我有相当大的图形布局 - 大看起来很棒的mdpi,但在hdpi他们不适合,他们只是大.

也许你有另一种解决方案而不是改变设备DPI?

小智 13

对的,这是可能的.以下将dpi设置为240.虽然您必须以某种方式刷新活动,例如重新启动应用程序.

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.density = 1.5f;
metrics.densityDpi = 240;
metrics.heightPixels = 1104;
metrics.widthPixels = 1920;
metrics.scaledDensity = 1.5f;
metrics.xdpi = 254.0f;
metrics.ydpi = 254.0f;
getResources().getDisplayMetrics().setTo(metrics);
Run Code Online (Sandbox Code Playgroud)


Has*_*y31 4

您应该创建您的应用程序以支持多个屏幕。请查看文档

希望这些链接对您有帮助

多屏幕设计

使用多个 Android 屏幕