package com.example.qyh.joe.base; import android.content.Context; import android.content.pm.ActivityInfo; import android.net.ConnectivityManager; import android.os.Build; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.widget.Toast; import com.example.qyh.joe.theme.base.BaseSkinActivity; /** * 此项目功能比较简单,故没有过多抽取 * Created by qyh on 2016/10/27. */ public abstract class BaseActivity extends BaseSkinActivity implements View.OnClickListener { protected Context mContext; private ConnectivityManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏 // setTheme(R.style.AnimationActivity);//设置切换动画 mContext = getActivityContext(); initView(); initdata(); } /** * 初始activity方法 */ private void initView() { loadViewLayout(); } private void initdata(){ findViewById(); setListener(); processLogic(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } /** * 加载页面layout */ protected abstract void loadViewLayout(); /** * 加载页面元素 */ protected abstract void findViewById(); /** * 设置各种事件的监听器 */ protected abstract void setListener(); /** * 业务逻辑处理,主要与后端交互 */ protected abstract void processLogic(); /** * Activity.this */ protected abstract Context getActivityContext(); /** * 弹出Toast * * @param text */ public void showToast(String text) { Toast toast = Toast.makeText(this, text, Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } /** * 获取屏幕宽度(px) * * @param * @return */ public int getMobileWidth() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; return width; } /** * 获取屏幕高度(px) * * @param * @return */ public int getMobileHeight() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int height = dm.heightPixels; return height; } /** * 获取状态栏高度 * @return */ public int getStatusBarHeight() { int result = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result; } public boolean checkNetworkState() { boolean flag = false; //得到网络连接信息 manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); //去进行判断网络是否连接 if (manager.getActiveNetworkInfo() != null) { flag = manager.getActiveNetworkInfo().isAvailable(); } return flag; } //沉浸式状态栏 @Override public void onWindowFocusChanged(boolean hasFocus){ super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } }