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 自定义状态栏实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Android studio 切换flutterSDK之后报错及解决办法(推荐)
这篇文章主要介绍了Android studio 切换flutterSDK之后报错及解决办法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
Android进阶CameraX与Camera2使用比对详解
这篇文章主要为大家介绍了Android进阶CameraX与Camera2使用比示例对详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-01-01
Android registerForActivityResult动态申请权限案例详解
这篇文章主要介绍了Android registerForActivityResult动态申请权限案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-09-09
Android 自定义精美界面包含选项菜单 上下文菜单及监听详解流程
这篇文章主要介绍了一个Android实例小项目,它包含了选项菜单、上下文菜单及其对应的监听事件,它很小,但这部分功能在Android开发中很常见,需要的朋友来看看吧2021-11-11
android WindowManager的简单使用实例详解
这篇文章主要介绍了android WindowManager的简单使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-08-08


最新评论