动态设置状态栏颜色为顶部标题背景图片颜色

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34581102/article/details/81118813

动态设置状态栏颜色为顶部标题背景图片颜色

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方法把标题布局传进去即可.

猜你喜欢

转载自blog.csdn.net/qq_34581102/article/details/81118813
今日推荐