主文件
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
immersive();
setHeightAndPadding(this,findViewById(R.id.toolbar));
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
private void immersive(){
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT){
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//设置状态栏颜色透明
window.setStatusBarColor(Color.TRANSPARENT);
int visibility = window.getDecorView().getSystemUiVisibility();
//布局内容全屏展示
visibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
//隐藏虚拟导航栏
visibility |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
//防止内容区域大小发生变化
visibility |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
window.getDecorView().setSystemUiVisibility(visibility);
}else {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
public int getStatusBarHeight(Context context){
int resId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resId > 0){
return context.getResources().getDimensionPixelSize(resId);
}
return 0;
}
public void setHeightAndPadding(Context context, View view){
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height += getStatusBarHeight(context);
view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + getStatusBarHeight(context), view.getPaddingRight(), view.getPaddingBottom());
}
}
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:title="toolbar" />
<!--<ImageView-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="330dp"-->
<!--android:background="@mipmap/ic_vip_header_bg"-->
<!--android:contentDescription="@null" />-->
<!--app:cardBackgroundColor="@color/colorPrimary" 设置cardView背景色 -->
<!--app:cardPreventCornerOverlap="false" 取消Lollipop以下版本的padding -->
<!--app:cardUseCompatPadding="true" 为 Lollipop 及其以上版本增加一个阴影padding内边距-->
<!--app:cardCornerRadius="8dp" 设置cardView圆角效果-->
<!--app:cardElevation="10dp" 设置cardView Z轴阴影大小-->
<!--app:cardMaxElevation="6dp" 设置cardView Z轴最大阴影-->
<!--app:contentPadding="10dp" 设置内容的内边距-->
<!--app:contentPaddingBottom="12dp" 设置内容的底部内边距-->
<!--app:contentPaddingLeft="12dp" 设置内容的左边内边距-->
<!--app:contentPaddingRight="12dp" 设置内容的右边内边距-->
<!--app:contentPaddingTop="12dp" 设置内容的顶部内边距-->
<android.support.v7.widget.CardView android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="20dp"
app:cardBackgroundColor="@color/colorPrimary"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true"
app:cardCornerRadius="8dp"
app:contentPadding="10dp"
android:clickable="true"
android:foreground="?attr/selectableItemBackground"
app:cardElevation="10dp">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="cardView"
android:background="#ffff00"
android:gravity="center"/>
</android.support.v7.widget.CardView>
</LinearLayout>
图片

ic_vip_header_bg.png
网友评论