Android How To Force Screen Density By Default
By magnifying the screen by 'Settings / Displays', I've found that my galaxy s9+'s screen density changes to 430 dpi to somewhere over 600dpi. This makes the layout and images to
Solution 1:
This seems to work for me.
DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics();
int snap = 20;
float exactDpi = (displayMetrics.xdpi + displayMetrics.ydpi) / 2;
float dpi = displayMetrics.densityDpi;
if (dpi - exactDpi > snap) {
int targetDpi = (int) (Math.ceil(exactDpi / snap) * snap);
Configuration config = activity.getResources().getConfiguration();
ErrorController.showMessage("adjustDisplayScale : " + config.densityDpi);
ErrorController.showMessage("targetDpi : " + targetDpi);
displayMetrics.densityDpi = targetDpi;
config.densityDpi = targetDpi;
displayMetrics.setTo(displayMetrics);
config.setTo(config);
activity.getResources().updateConfiguration(config, displayMetrics);
}
Post a Comment for "Android How To Force Screen Density By Default"