动态设置状态栏颜色为顶部标题背景图片颜色
package com.jibaowang.groupbuy.base;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import com.jibaowang.groupbuy.MyApplication;
import com.jibaowang.groupbuy.R;
import com.jibaowang.groupbuy.activity.BaseActivity;
import com.jibaowang.groupbuy.activity.MainActivity;
import com.jibaowang.groupbuy.constant.CommonConstant;
import com.jibaowang.groupbuy.utils.ActManager;
import com.jibaowang.groupbuy.utils.AppStatusManager;
import com.jibaowang.groupbuy.utils.DensityUtil;
import butterknife.ButterKnife;
/**
* Created by wjw on 2017/9/19.
*/
public abstract class BaseFullscreenAct extends FragmentActivity {
private boolean mVersions4_4;
protected void initTitleBar(final FragmentActivity activity, String title){
//返回图标
findViewById(R.id.tv_titel_back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
activity.finish();
overridePendingTransition(R.anim.basein_animation,R.anim.baseout_animation);
}
});
//标题
((TextView)findViewById(R.id.tv_title_bar_title)).setText(title);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
mVersions4_4 = true;
}
}
protected abstract void setUpViewAndData();
protected abstract int setView();
/**动态判断版本匹配沉浸高度**/
protected void immerseTitle(View view){
if(mVersions4_4){
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height=layoutParams.height+ DensityUtil.getStatusBarHeight(getApplicationContext());
view.setLayoutParams(layoutParams);
}
}
}
DensityUtil类中的getStatusBarHeight方法
/**
* 获取状态栏高度
* @return
*/
public static int getStatusBarHeight(Context context){
int statusBarHeight1 = -1;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight1 = context.getResources().getDimensionPixelSize(resourceId);
}
return statusBarHeight1;
}
在子类Activity中调用immerseTitle方法把标题布局传进去即可.