今日头条屏幕适配
工具類:
/*** 適配:修改設備密度*/private static float sNoncompatDensity;private static float sNoncompatScaledDensity;public static void setCustomDensity(@NonNull Activity activity, @NonNull final Application application) {DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics();if (sNoncompatDensity == 0) {sNoncompatDensity = appDisplayMetrics.density;sNoncompatScaledDensity = appDisplayMetrics.scaledDensity;// 防止系統切換后不起作用application.registerComponentCallbacks(new ComponentCallbacks() {@Overridepublic void onConfigurationChanged(Configuration newConfig) {if (newConfig != null && newConfig.fontScale > 0) {sNoncompatScaledDensity = application.getResources().getDisplayMetrics().scaledDensity;}}@Overridepublic void onLowMemory() {}});}float targetDensity = appDisplayMetrics.widthPixels / 360;// 防止字體變小float targetScaleDensity = targetDensity * (sNoncompatScaledDensity / sNoncompatDensity);int targetDensityDpi = (int) (160 * targetDensity);appDisplayMetrics.density = targetDensity;appDisplayMetrics.scaledDensity = targetScaleDensity;appDisplayMetrics.densityDpi = targetDensityDpi;final DisplayMetrics activityDisplayMetrics = activity.getResources().getDisplayMetrics();activityDisplayMetrics.density = targetDensity;activityDisplayMetrics.scaledDensity = targetScaleDensity;activityDisplayMetrics.densityDpi = targetDensityDpi;}
BaseActivity.java中的使用
DisplayUtil.setCustomDensity(this, getApplication()); ?
轉載于:https://www.cnblogs.com/Oldz/p/9542276.html
總結