Java 更改Android应用程序的DisplayMetrics(API级别低于17)
我正在开发这个应用程序,它在所有设备上看起来都是一样的。问题是,如果设备有一个大分辨率屏幕(例如Java 更改Android应用程序的DisplayMetrics(API级别低于17),java,android,configuration,screen-resolution,dpi,Java,Android,Configuration,Screen Resolution,Dpi,我正在开发这个应用程序,它在所有设备上看起来都是一样的。问题是,如果设备有一个大分辨率屏幕(例如1920x1080和密度,比如说320),那么所有元素都开始看起来很小 在API级别17及更高级别上,我可以使用以下代码来纠正问题: DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); android.content.res.Configuration config = context
1920x1080
和密度,比如说320
),那么所有元素都开始看起来很小
在API级别17及更高级别上,我可以使用以下代码来纠正问题:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
android.content.res.Configuration config = context.getResources().getConfiguration();
config.densityDpi = <desired dpi goes here>;
context.getResources().updateConfiguration(config, displayMetrics);
但是这个代码没有任何效果:(。也许我用错了。有人能帮我澄清一下吗
更新:那么,没有人知道这件事了?:/你需要看看软件包/应用程序/设置/显示设置。Java字体大小部分,它使用显示度量作为缩放字体属性,但我认为你需要使用密度属性而不是密度dpi你只需要像这样更新配置和显示度量
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Configuration config = context.getResources().getConfiguration();
displayMetrics.densityDpi = DisplayMetrics.DENSITY_LOW;
config.densityDpi = DisplayMetrics.DENSITY_LOW;
context.getResources().updateConfiguration(config, displayMetrics);
不确定您是否仍在寻找答案。请尝试以下方法:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Configuration config = context.getResources().getConfiguration();
displayMetrics.densityDpi = DisplayMetrics.DENSITY_LOW;
config.densityDpi = DisplayMetrics.DENSITY_LOW;
displayMetrics.setTo(displayMetrics);
config.setTo(config);
context().getResources().updateConfiguration(config, displayMetrics);
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Configuration config = context.getResources().getConfiguration();
displayMetrics.densityDpi = DisplayMetrics.DENSITY_LOW;
config.densityDpi = DisplayMetrics.DENSITY_LOW;
displayMetrics.setTo(displayMetrics);
config.setTo(config);
context().getResources().updateConfiguration(config, displayMetrics);