Android 自定义状态栏实例代码

一、目标:Android5.0以上

二、步骤

1、在res-values-colors.xml下新建一个RGB颜色

<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="theRed">#ff6a69</color> </resources>

2、新建一个布局,名为actionbarlayout.xml,在后边重写布局时用于添加

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/actionBarId" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>

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"?> <com.example.test.ActionBarLayOut xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.test.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theRed" android:text="Hello World!" /> </com.example.test.ActionBarLayOut>

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 自定义状态栏实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-26 08:45:05

Android 自定义状态栏实例代码的相关文章

Android自定义DataTimePicker实例代码(日期选择器)

笔者有一段时间没有发表关于Android的文章了,关于Android自定义组件笔者有好几篇想跟大家分享的,后期会记录在博客中.本篇博客给大家分享的是自定义一个日期选择器,可以让用户同时选择年月日和当前时间. 先看看效果: 实现的效果就是在同一个布局上显示日期选择和时间选择. 自定义一个类: /DateTimePicker/src/com/wwj/datetimepicker/DateTimePickDialogUtil.java package com.wwj.datetimepicker; i

Android自定义popupwindow实例代码_Android

先来看看效果图: 一.布局  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content&qu

Android自定义popupwindow实例代码

先来看看效果图: 一.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content&quo

Android自定义手机界面状态栏实例代码

前言 我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果: 实现这个效果有两个方法: 1.在xml中设置主题或自定义style: Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.Holo.NoActi

Android自定义状态栏颜色与APP风格保持一致的实现方法_Android

我们知道iOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果: 实现此功能有两种方法: 1.在xml中设置主题或自定义style: Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.Holo.NoActionBa

Android自定义状态栏颜色与应用标题栏颜色一致_Android

每次看IOS上的应用,应用中状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,对于这种效果,像我这种好奇心强的人就会去看看那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果: 实现此功能有两种方法: 1.在xml中设置主题或自定义style: Theme.Holo.Light.NoActionBar.TranslucentDec

Android自定义状态栏颜色与APP风格保持一致的实现方法

我们知道iOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果: 实现此功能有两种方法: 1.在xml中设置主题或自定义style: Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.Holo.NoActionBa

Android JNI的实例代码流程图

0Android JNI实例代码总体流程图 1C代码部分 2C代码部分 3Java代码部分 0.Android JNI实例代码总体流程图 1.C代码部分 2.C++代码部分 3.Java代码部分 Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢! <Android JNI的实例代码流程图>: http://blog.csdn.net/u014134180/article/details/78125723 如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有

Android 滑动拦截实例代码解析_Android

废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.widget.LinearLayout; /** * Created by huqing on 2016/12/7.