android状态栏一体化
16lz
2021-12-04
支持 api >= 19
public class StatusBarWrapper {private static final String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height";private View mStatusBarView;public StatusBarWrapper(Activity activity) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {setupStatusBarView(activity);}}@TargetApi(19)private void setupStatusBarView(Activity activity) {Window win = activity.getWindow();WindowManager.LayoutParams winParams = win.getAttributes();final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;winParams.flags |= bits;win.setAttributes(winParams);mStatusBarView = new View(activity);LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, getStatusBarHeight(activity));params.gravity = Gravity.TOP;mStatusBarView.setLayoutParams(params);mStatusBarView.setBackgroundResource(R.color.main);//只能用idmStatusBarView.setVisibility(View.VISIBLE);((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0).setFitsSystemWindows(true);((ViewGroup) win.getDecorView()).addView(mStatusBarView);}public void setBackgroundResource(int resId) {if(mStatusBarView != null) {mStatusBarView.setBackgroundResource(resId);}}public int getStatusBarHeight(Activity activity) {Resources res = activity.getResources();int result = 0;int resourceId = res.getIdentifier(STATUS_BAR_HEIGHT_RES_NAME, "dimen", "android");if (resourceId > 0) {result = res.getDimensionPixelSize(resourceId);}return result;}}
使用
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new StatusBarWrapper(this).setBackgroundResource(R.color.bg_click);}}
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- 《Android(安卓)基础(三十三)》 TabHost ~ 仿微信底部菜单
- Android中webview的使用
- android 报错集锦
- Android中Preference的使用以及监听事件分析
- android 加密数据库