关于在安卓4.4上实现沉浸式状态栏
2015-05-24 11:49
441 查看
首先需要设置actionbar和状态栏透明,并且还要设置no title,这一系列动作我提取了一个类,在静态方法里完成。
只需要在setContentView(R.layout.activity_lost_find);之前通过 ColorActionBar.setActionBar(this);这行代码调用就行
下面是我的自定义布局里面的代码,这里我继承了LinearLayout
下面这个代码是我的自定义布局加载的代码。
这个是activity_lost_find.xml里面的代码
基本上就这些了,大家可以直接把自定义布局拷不过用
可以通过这两句设置沉浸式状态栏的颜色
这就是最终效果图,有什么不懂可以评论问我。
package com.liran.mobileSafe.utils; import com.liran.mobileSafe.R; import android.app.Activity; import android.graphics.Color; import android.os.Build; import android.view.Window; import android.view.WindowManager; import android.widget.LinearLayout; public class ColorActionBar { private static LinearLayout color_actionbar_layout; private static Activity activity; public static void setActionBar(Activity activity) { activity=activity; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = activity.getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } activity.requestWindowFeature(Window.FEATURE_NO_TITLE); } /* public static void setActionBarColor(int color) { color_actionbar_layout=(LinearLayout) activity.findViewById(R.id.color_actionbar_layout); color_actionbar_layout.setBackgroundColor(color); }*/ 注释着一段就不要看了,之前这样写是错的。。具体忘了什么原因了,所以我采用了自定义的布局 }
只需要在setContentView(R.layout.activity_lost_find);之前通过 ColorActionBar.setActionBar(this);这行代码调用就行
下面是我的自定义布局里面的代码,这里我继承了LinearLayout
package com.liran.mobileSafe.view; import com.liran.mobileSafe.R; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; public class MyColorLayout extends LinearLayout { private TextView titleText; private void initView(Context context){ View.inflate(context, R.layout.color_actionbar_viewgroup,this); titleText=(TextView)findViewById(R.id.color_actionbar_title); } public MyColorLayout(Context context) { super(context); initView(context); } public MyColorLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(context); } public MyColorLayout(Context context, AttributeSet attrs) { super(context, attrs); initView(context); String title=attrs.getAttributeValue("http://schemas.android.com/apk/com.liran.mobileSafe", "titletext"); setmyText(title); //<span style="font-family: Arial, Helvetica, sans-serif;">titletext是自定义属性,我相信大家都还是可以看的懂得。 这里用到的获取自定义属性的方法 比较奇特,但是很方便</span> } public void setmyText(String text){ titleText.setText(text); } }
<pre name="code" class="html"> <declare-styleable name="MYColorLayout"> <attr name="titletext" format="string"/> </declare-styleable><!-- 这是自定义属性 -->
下面这个代码是我的自定义布局加载的代码。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/color_actionbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="true" android:fitsSystemWindows="true" android:orientation="vertical" > <TextView android:id="@+id/color_actionbar_title" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:textColor="#000000" android:textSize="22sp" /> </LinearLayout>
这个是activity_lost_find.xml里面的代码
<com.liran.mobileSafe.view.MyColorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:liran="http://schemas.android.com/apk/com.liran.mobileSafe" android:id="@+id/lostfind_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" liran:titletext="手机防盗" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#fff" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="aaaaaaaaaaaa" android:textColor="#000" android:textSize="30sp" /> </LinearLayout> </com.liran.mobileSafe.view.MyColorLayout>
基本上就这些了,大家可以直接把自定义布局拷不过用
可以通过这两句设置沉浸式状态栏的颜色
<span> </span>myColorlayout=(MyColorLayout) findViewById(R.id.lostfind_layout); <span> </span>myColorlayout.setBackgroundColor(getResources().getColor(R.color.green));
这就是最终效果图,有什么不懂可以评论问我。
相关文章推荐
- Android中关于沉浸式状态栏的实现
- android沉浸式状态栏实现
- Android 状态栏工具类(实现沉浸式状态栏/变色状态栏)
- 封装一个BaseActivity并实现沉浸式状态栏
- 关于MIUI 9沉浸式状态栏的最新适配
- Android 4.4 沉浸式状态栏的实现
- Android 状态栏工具类(实现沉浸式状态栏/变色状态栏)
- 沉浸式状态栏的实现
- TitleLayout——一个Android轻松实现通用、标准、支持沉浸式状态栏的标题栏库
- 简单使用style实现沉浸式状态栏
- 控制状态栏、导航栏、实现沉浸式模式
- android 沉浸式状态栏的两种实现方式
- OPPO沉浸式状态栏适配 安卓4.4-安卓6.0
- 一个Activity中多个Fragment实现沉浸式状态栏
- Android沉浸式状态栏实现
- 沉浸式状态栏实现
- Android实现沉浸式状态栏
- cordova实现沉浸式(透明)状态栏效果
- 关于沉浸式状态栏位置顶上去一部分的问题解决
- Android KITKAT 以上实现沉浸式状态栏