android怎么设置状态栏和actionbar同颜色? 200
展开全部
我今天下午才搞了这东西,也查了好多资料。
首先状态栏颜色是可以设置的,但你不可能每个界面的头部都一个颜色,每次都去修改头部颜色比较麻烦,比较简单的方法就是让状态栏透明,然后你就会发现所有的头部都定到状态栏上了,接下来给头部一个PaddingTop就好了,但状态栏透明只有手机API大于21才有用,所以判断一下大于21再用,不大于就不弄透明了。
关键代码:
BaseActivity
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//这就是透明
}
//透明之后所有的头部都会顶上来,然后就是加paddingtop了
//头部layout公用,rl_title_content是最外层的RelativeLayout。
RelativeLayout rl_title_content = findViewById(R.id.rl_title_content);
if (rl_title_content != null) {
//getStatusBarHeight是获取状态栏的高度的
rl_title_content.setPadding(0,Utils.getStatusBarHeight(this),0,0);//左上右下
}
public static int getStatusBarHeight(Context context) {
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, sbar = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
sbar = context.getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
e1.printStackTrace();
}
return sbar;
}
大概就是这样,有什么问题继续问我。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询