使用环境:
看到QQ,微信在图片查看的时候,图片铺满全屏,包括显示电量,信号的地方都可以覆盖。
使用方法:
1 做一个工具类,方法是:
/** * 为头部是 ImageView 的界面设置状态栏透明 * * @param activity 需要设置的activity * @param statusBarAlpha 状态栏透明度 * @param needOffsetView 需要向下偏移的 View */ public static void setTranslucentForImageView(Activity activity, @IntRange(from = 0, to = 255) int statusBarAlpha, View needOffsetView) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { return; } setTransparentForWindow(activity); addTranslucentView(activity, statusBarAlpha); if (needOffsetView != null) { Object haveSetOffset = needOffsetView.getTag(TAG_KEY_HAVE_SET_OFFSET); if (haveSetOffset != null && (Boolean) haveSetOffset) { return; } ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) needOffsetView.getLayoutParams(); layoutParams.setMargins(layoutParams.leftMargin, layoutParams.topMargin + getStatusBarHeight(activity), layoutParams.rightMargin, layoutParams.bottomMargin); needOffsetView.setTag(TAG_KEY_HAVE_SET_OFFSET, true); } }
2在onCreate()方法中调用
@Override public void onCreate(@Nullable Bundle savedInstanceState) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); splashBinding = DataBindingUtil.setContentView(this, R.layout.activity_splash); splashBinding.setSplash(this); StatusBarUtil.setTranslucentForImageView(SplashActivity.this, 0, null); initView(); }
类似于上面的方法。
3差点忘了xml布局:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageSplash" android:scaleType="fitXY" android:src="@mipmap/splash_hh" /> </LinearLayout>
这样,显示的一个图片就可以填充整个屏幕。
当然,这里说的可不是填充整个控件而已,是整个屏幕。