StatusBarUtil icon indicating copy to clipboard operation
StatusBarUtil copied to clipboard

关于修改屏幕密度进行适配,某些平板发生如下情况

Open wzgl5533 opened this issue 6 years ago • 1 comments

修改密度代码: ` 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); 初始: image

滑动: image

状态栏和标题栏之间会出现空白

wzgl5533 avatar Jun 26 '18 08:06 wzgl5533

这是你的noactionbar的style问题吧

sunxu3074 avatar Jan 14 '19 07:01 sunxu3074