StatusBarUtil
StatusBarUtil copied to clipboard
关于修改屏幕密度进行适配,某些平板发生如下情况
修改密度代码: ` public static void setCustomDensity(@NonNull Activity activity, @NonNull final Application application) {
final DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics();
if (sNonCompatDensity == 0) {
sNonCompatDensity = appDisplayMetrics.density;
sNonCompatScaleDensity = appDisplayMetrics.scaledDensity;
application.registerComponentCallbacks(new ComponentCallbacks() {
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig != null && newConfig.fontScale > 0) {
sNonCompatScaleDensity = application.getResources().getDisplayMetrics().scaledDensity;
}
}
@Override
public void onLowMemory() {
}
});
}
final float targetDensity = appDisplayMetrics.widthPixels*1.0f / 360;
final float targetScaleDensity = targetDensity * (sNonCompatScaleDensity / sNonCompatDensity);
final 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;
}
` 平板原始信息:12001884 dpi为320 density为2 修改完成信息:12001884 dpi为533 density为3.3
但在滚动渐变出现问题:
StatusBarUtil.setTranslucentForImageView(this, 1, findViewById(R.id.head));
渐变计算设置bar:
int red = Color.red(color); int green = Color.green(color); int blue = Color.blue(color); int alpha = (int) (Color.alpha(color) * fraction); int resultColor = Color.argb(alpha, red, green, blue); StatusBarUtil.setColorNoTranslucent(this, resultColor);
初始:
滑动:
状态栏和标题栏之间会出现空白
这是你的noactionbar的style问题吧