package com.king.tv.mvp.base; import android.annotation.TargetApi; import android.content.Context; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import com.king.tv.App; import com.king.tv.R; /** * @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a> * @since 2017/3/3 */ public abstract class PureActivity extends AppCompatActivity { private static final int INVALID_VAL = -1; private static final int COLOR_DEFAULT = Color.parseColor("#7f000000"); protected Context context; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } context = this; setContentView(getRootViewId()); initUI(); setStatusViewColor(getResources().getColor(R.color.colorPrimaryDark)); } public void replaceFragment(Fragment fragmnet){ replaceFragment(R.id.fragmentContent,fragmnet); } public void replaceFragment(@IdRes int id, Fragment fragment) { getSupportFragmentManager().beginTransaction().replace(id, fragment).commit(); } public App getApp(){ return (App)getApplication(); } public void setStatusViewColorDefault(){ setStatusViewColor(COLOR_DEFAULT); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void setStatusViewColor(int statusColor){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (statusColor != INVALID_VAL) { getWindow().setStatusBarColor(statusColor); } return; } // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { int color = COLOR_DEFAULT; ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content); if (statusColor != INVALID_VAL) { color = statusColor; } View statusBarView = new View(this); ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(this)); statusBarView.setBackgroundColor(color); contentView.addView(statusBarView, lp); } } public int getStatusBarHeight(Context context) { int result = 0; int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = context.getResources().getDimensionPixelSize(resourceId); } return result; } public abstract int getRootViewId(); public abstract void initUI(); }