又是忙了很久才有时间,这次我来说一下,android风格统一化修改上方标题栏颜色,

修改颜色后能达到与背景图片的颜色一致,风格一致,下面我们来看一张图

 

很明显,这个图中的标题栏颜色是红色,这里我为了测试所以做了一个很显眼的颜色,有些软件中需要使标题栏改变成相应的颜色,即风格与app背景颜色统一化,所以这个时候就需要这个样子的设置了。首先,先了解这个东西:


SystemBarTint开源项目

地址:https://github.com/jgilfelt/SystemBarTint


有了这个开源项目后我们很快就能设置颜色了,在这之前先要编辑一个颜色文件,在res/value/文件夹下新建color文件,然后编辑下颜色:

Xml文件:

<?xml version="1.0" encoding="utf-8"?>    #ff0000



之后把开源项目中的SystemBarTintManager粘贴到你的工程中,我这里新建了一个工具类来循环调用。

Java代码:

 

package com.example.demo;import android.annotation.TargetApi;import android.app.Activity;import android.os.Build;import android.view.Window;import android.view.WindowManager;/*** * 改变系统标题栏颜色类 * @author Administrator * */public class X_SystemBarUI {/** * 改变系统标题栏颜色 * @param activity * @param color   color xml文件下的颜色 */public static void initSystemBar(Activity activity, int color) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {setTranslucentStatus(activity, true);}SystemBarTintManager tintManager = new SystemBarTintManager(activity);tintManager.setStatusBarTintEnabled(true);// 使用颜色资源tintManager.setStatusBarTintResource(color);}/** * 设置系统标题栏的透明度 * @param activity * @param on */@TargetApi(19)private static void setTranslucentStatus(Activity activity, boolean on) {Window win = activity.getWindow();WindowManager.LayoutParams winParams = win.getAttributes();final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;if (on) {winParams.flags |= bits;} else {winParams.flags &= ~bits;}win.setAttributes(winParams);}}


写好工具类之后就可以进行设置了,设置的方法很简单,也很方便

X_SystemBarUI.initSystemBar(Activity activityint color);

在你想要设置颜色的Activity的onCreate方法下写好就可以了。

MainActivity

package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);X_SystemBarUI.initSystemBar(this, R.color.color);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}

 

这样就完成了,简单而且快捷,动手试试看吧。

Demo下载

更多相关文章

  1. Android高仿微信图片多选功能
  2. android 中的两个文件夹res/raw和assets
  3. Android(安卓)显示GIF图片实例详解
  4. 记一次Build.gradle引发的ClassNotFound
  5. Android中弹窗中带有Edittext,软键盘遮挡问题
  6. Android(安卓)API Guides---Data Storage
  7. android 属性系统,SystemProperties 的简介---转载
  8. Android客户端请求服务端资源(HttpURLConnection和输入流实现)
  9. Android中显示GIF动画的实现代码

随机推荐

  1. Android:SQLiteOpenHelper
  2. android仿微信UI设计
  3. 第15章、布局Layouts之TableLayout表格布
  4. Android 切换主题以及换肤的实现
  5. Android(安卓)Studio中的Project和Module
  6. android例子分析-1
  7. Android检索图像
  8. Android 之 Handler的分析
  9. Android中V4包下的Fragment使用
  10. android:imeOptions属性详解(Enter功能)