Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改Android应用程序的DisplayMetrics(API级别低于17)_Java_Android_Configuration_Screen Resolution_Dpi - Fatal编程技术网

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);