饿了么如何做网站推广怎么把wordpress
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:20
当前位置: 首页 > news >正文
饿了么如何做网站推广,怎么把wordpress,建网站深圳,住房和城乡建设部监理工程师网站Android状态栏适配是一个老生常谈的问题#xff0c;那么我又拿出来讲了#xff0c;因为这个东西确实太重要了#xff0c;基本上每个项目都用得到。状态栏总共有几种形态。第一#xff0c;让状态栏颜色跟应用主色调一致#xff0c;布局内容不占有状态栏的位置。第二#x…Android状态栏适配是一个老生常谈的问题那么我又拿出来讲了因为这个东西确实太重要了基本上每个项目都用得到。状态栏总共有几种形态。第一让状态栏颜色跟应用主色调一致布局内容不占有状态栏的位置。第二让布局内容的顶部成为状态栏的一部分状态栏透明。第三有DrawerLayout的情况侧边栏滑出来一半侧边栏的顶部界面一半内容的顶部界面且不透明。 让状态栏颜色跟应用主色调一致布局内容不占有状态栏的位置 设置非全屏的状态栏颜色 /*** 设置不全屏内容的状态栏颜色。** param activity 需要设置的activity* param statusBarColor 状态栏颜色值* param statusBarAlpha 状态栏透明度/ public static void setStatusBar(Activity activity, ColorInt int statusBarColor, IntRange(from 0, to 255) int statusBarAlpha) {if (Build.VERSION.SDK_INT Build.VERSION_CODES.M) {// 6.0 支持根据状态栏颜色定制浅色和深色的文字和图标activity.getWindow().setStatusBarColor(statusBarColor);int option;if (isDarkColor(statusBarColor)) {// 深色状态栏则让状态栏文字和图标变白option View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;} else {// 浅色状态栏则让状态栏文字和图标变黑option View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE;}activity.getWindow().getDecorView().setSystemUiVisibility(option);} else if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP) {// 5.xactivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);activity.getWindow().setStatusBarColor(calculateColor(statusBarColor, statusBarAlpha));} else if (Build.VERSION.SDK_INT Build.VERSION_CODES.KITKAT) {// 4.4 自己创建一个色块加到DecorViewactivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);ViewGroup decorView (ViewGroup) activity.getWindow().getDecorView();View doraStatusBarView decorView.findViewById(DORA_STATUS_BAR_VIEW_ID);if (doraStatusBarView ! null) {if (doraStatusBarView.getVisibility() View.GONE) {doraStatusBarView.setVisibility(View.VISIBLE);}doraStatusBarView.setBackgroundColor(calculateColor(statusBarColor, statusBarAlpha));} else {decorView.addView(createStatusBarView(activity, statusBarColor, statusBarAlpha));}setFitsSystemWindow(activity);} else {// 4.4 不可定制黑色状态栏无解} }检测状态栏的颜色以确定用深色还是浅色的文字和图标 /** 状态栏是否是深色。** param color 状态栏颜色值*/ public static boolean isDarkColor(ColorInt int color) {int gray (int) (Color.red(color) * 0.299 Color.green(color) * 0.587 Color.blue(color) * 0.114);return gray 192; }自己创建一个和状态栏一样高度的色块。 /*** 生成一个和状态栏大小相同的矩形条。** param activity 需要设置的activity* param color 状态栏颜色值* param alpha 状态栏透明度* return 状态栏矩形条*/ private static View createStatusBarView(Activity activity, ColorInt int color, int alpha) {// 绘制一个和状态栏一样高的矩形View statusBarView new View(activity);LinearLayout.LayoutParams params new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(activity));statusBarView.setLayoutParams(params);statusBarView.setBackgroundColor(calculateColor(color, alpha));statusBarView.setId(DORA_STATUS_BAR_VIEW_ID);return statusBarView; }根布局设置fitsSystemWindow private static void setFitsSystemWindow(Activity activity) {ViewGroup parent (ViewGroup) activity.findViewById(android.R.id.content);for (int i 0, count parent.getChildCount(); i count; i) {View childView parent.getChildAt(i);if (childView instanceof ViewGroup) {childView.setFitsSystemWindows(true);((ViewGroup) childView).setClipToPadding(true);}} }获取状态栏的高度 private static int getStatusBarHeight(Context context) {int resourceId context.getResources().getIdentifier(status_bar_height, dimen, android);return context.getResources().getDimensionPixelSize(resourceId); }计算带透明度后的颜色 private static int calculateColor(ColorInt int color, int alpha) {if (alpha 0) {return color;}float a 1 - alpha / 255f;int red color 16 0xff;int green color 8 0xff;int blue color 0xff;red (int) (red * a 0.5);green (int) (green * a 0.5);blue (int) (blue * a 0.5);return 0xff 24 | red 16 | green 8 | blue; }让布局内容的顶部成为状态栏的一部分状态栏透明 public static void setFullScreenStatusBar(Activity activity) {if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP) {activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);activity.getWindow().setStatusBarColor(Color.TRANSPARENT);} else {activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); }DrawerLayout设置状态栏颜色 设置DrawerLayout的状态栏一半的颜色 public static void setStatusBar(Activity activity, DrawerLayout drawerLayout, ColorInt int statusBarColor,IntRange(from 0, to 255) int statusBarAlpha) {if (Build.VERSION.SDK_INT Build.VERSION_CODES.KITKAT) {return;}if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP) {activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);activity.getWindow().setStatusBarColor(Color.TRANSPARENT);} else {activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}ViewGroup contentLayout (ViewGroup) drawerLayout.getChildAt(0);View doraStatusBarView contentLayout.findViewById(DORA_STATUS_BAR_VIEW_ID);if (doraStatusBarView ! null) {if (doraStatusBarView.getVisibility() View.GONE) {doraStatusBarView.setVisibility(View.VISIBLE);}doraStatusBarView.setBackgroundColor(statusBarColor);} else {contentLayout.addView(createStatusBarView(activity, statusBarColor), 0);}if (!(contentLayout instanceof LinearLayout) contentLayout.getChildAt(1) ! null) {contentLayout.getChildAt(1).setPadding(contentLayout.getPaddingLeft(), getStatusBarHeight(activity) contentLayout.getPaddingTop(),contentLayout.getPaddingRight(), contentLayout.getPaddingBottom());}setFitsSystemWindow(drawerLayout, contentLayout);addStatusBarView(activity, statusBarAlpha); }设置fitsSystemWindow private static void setFitsSystemWindow(DrawerLayout drawerLayout, ViewGroup drawerLayoutContentLayout) {ViewGroup drawer (ViewGroup) drawerLayout.getChildAt(1);drawerLayout.setFitsSystemWindows(false);drawerLayoutContentLayout.setFitsSystemWindows(false);drawerLayoutContentLayout.setClipToPadding(true);drawer.setFitsSystemWindows(false); }添加状态栏View /*** 添加半透明矩形条。** param activity 需要设置的 activity* param statusBarAlpha 状态栏透明度*/ private static void addStatusBarView(Activity activity, IntRange(from 0, to 255) int statusBarAlpha) {ViewGroup contentView (ViewGroup) activity.findViewById(android.R.id.content);View doraStatusBarView contentView.findViewById(DORA_STATUS_BAR_VIEW_ID);if (doraStatusBarView ! null) {if (doraStatusBarView.getVisibility() View.GONE) {doraStatusBarView.setVisibility(View.VISIBLE);}doraStatusBarView.setBackgroundColor(Color.argb(statusBarAlpha, 0, 0, 0));} else {contentView.addView(createTranslucentStatusBarView(activity, statusBarAlpha));} }
- 上一篇: 恶意网站怎么办50人办公室网络搭建
- 下一篇: 鄂尔多斯网站建设公司网络营销方式的优缺点
相关文章
-
恶意网站怎么办50人办公室网络搭建
恶意网站怎么办50人办公室网络搭建
- 技术栈
- 2026年03月21日
-
恶意代码 wordpress上海网站排名seo公司哪家好
恶意代码 wordpress上海网站排名seo公司哪家好
- 技术栈
- 2026年03月21日
-
额尔古纳网站建设专业建站公司建站系统该规划哪些内容
额尔古纳网站建设专业建站公司建站系统该规划哪些内容
- 技术栈
- 2026年03月21日
-
鄂尔多斯网站建设公司网络营销方式的优缺点
鄂尔多斯网站建设公司网络营销方式的优缺点
- 技术栈
- 2026年03月21日
-
鄂州市住房和城乡建设部网站长沙网站建设建
鄂州市住房和城乡建设部网站长沙网站建设建
- 技术栈
- 2026年03月21日
-
鄂州网站建设server2008 iis 网站
鄂州网站建设server2008 iis 网站
- 技术栈
- 2026年03月21日






