(1)自定义BaseActivity,继承AppCompatActivity类;
public class BaseActivity extends AppCompatActivity{
public static Context mInstance = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*设置成透明导航栏和透明状态栏*/
setScreen(this);
}
/**
* 将指定的activity设置成透明导航栏和透明状态栏
*
* @param activity 设置的对象
*/
public void setScreen(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
activity.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
activity.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
} else {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
}
(2)在需要设置自定义状态栏的Activity类添加如下代码,继承自定义的BaseActivity类;
public class LoginActivity extends BaseActivity {
//TODO ...
}
在styles.xml中添加如下内容:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/white</item>
<item name="android:windowNoTitle">true</item>
</style>
在AndroidManifest.xml文件中,为application标签添加如下属性,若已经设置了该属性,则将属性值修改为如下的值:
android:theme="@style/AppTheme"
在需要使用自定义状态栏的activity.xml布局文件中添加如下代码:
<!-- 顶部工具栏 -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="77dp">
<!-- 返回图标 -->
<ImageView
android:id="@+id/login_signout_iv"
style="@style/tt_iv" />
<!-- 文字"退出" -->
<TextView
android:id="@+id/login_signout_tv"
style="@style/tt_tv"
android:layout_toRightOf="@id/login_signout_iv"
android:text="@string/toolbar_exit" />
<!-- 文字“登录” -->
<TextView
style="@style/tt_tv"
android:layout_centerInParent="true"
android:text="@string/login" />
</RelativeLayout>
另外,自定义状态栏中使用到的styles如下,将如下的代码添加到styles.xml中即可;
<!--+++++++++++++++++++++++++++++++++++ Title标题 ++++++++++++++++++++++++++++++++++++++++++++ -->
<style name="tt_iv">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_marginLeft">12dp</item>
<item name="android:layout_marginBottom">15dp</item>
<item name="android:background">@drawable/title_im</item>
</style>
<style name="tt_tv">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>j
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_marginLeft">8dp</item>
<item name="android:layout_marginBottom">18dp</item>
<item name="android:textColor">@color/black</item>
<item name="android:textSize">23sp</item>
</style>