大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家介绍Android应用中怎么实现自定义状态栏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联公司 - 南充服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,南充服务器托管,西南服务器托管,四川/成都大带宽,成都机柜租用,四川老牌IDC服务商
一、目标:Android5.0以上
二、步骤
1、在res-values-colors.xml下新建一个RGB颜色
<?xml version="1.0" encoding="utf-8"?>#3F51B5 #303F9F #FF4081 #ff6a69
2、新建一个布局,名为actionbarlayout.xml,在后边重写布局时用于添加
<?xml version="1.0" encoding="utf-8"?>
3、重写LineaLayout布局,放置步骤二新建的布局在顶部,用作背景颜色的容器
public class ActionBarLayOut extends LinearLayout { public ActionBarLayOut(Context context, AttributeSet attrs){ super(context,attrs); LayoutInflater.from(context).inflate(R.layout.actionbarlayout,this); } }
3、在主布局里调用这个重写后的线性布局
<?xml version="1.0" encoding="utf-8"?>
4、在main活动中进行相应设置
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView)findViewById(R.id.actionBarId); int color = getResources().getColor(R.color.theRed); setActionBarColor(textView,color); } protected void setActionBarColor(TextView textView, int ActionBarColor){ //----------------------------------隐藏标题栏---------------------------------------------- if (getSupportActionBar()!=null) { getSupportActionBar().hide(); } //------------------------------------------------------------------------------------------ //----------------------------------将状态栏设置为透明-------------------------------------- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); window.setNavigationBarColor(Color.TRANSPARENT); } //------------------------------------------------------------------------------------------ /** * 首先获取状态栏的高度statusBarHeight1,然后在状态栏的位置放一个空的TextView, * 高度设置为statusBarHeight1,然后将TextView的背景颜色进行设置,这样就可以变相 * 的给状态栏设置颜色 */ int statusBarHeight1 = -1; //获取status_bar_height资源的ID int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { //根据资源ID获取响应的尺寸值 statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); } textView.setHeight(statusBarHeight1); textView.setBackgroundColor(ActionBarColor); } }
关于Android应用中怎么实现自定义状态栏就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。