package com.example.photovoltaic.base; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.example.photovoltaic.listener.BaseView; import com.example.photovoltaic.utils.AppManagerUtils; import org.greenrobot.eventbus.EventBus; public abstract class BaseActivity extends AppCompatActivity implements BaseView { protected Activity _mActivity; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); _mActivity = this; Object content = getContentView(); //添加Activity到堆栈 AppManagerUtils.getAppManager().addActivity(this); if (content instanceof Integer) { setContentView((int) content); } else if (content instanceof View) { setContentView((View) content); } else { throw new RuntimeException("getContentView() should be a @LayoutRes or a View"); } onBindView(savedInstanceState); } @Override protected void onDestroy() { super.onDestroy(); } /** * 显示View * * @param view */ public void setViewVisible(View view) { if (view.getVisibility() != View.VISIBLE) { view.setVisibility(View.VISIBLE); } } /** * 隐藏View * * @param view */ protected void setViewGone(View view) { if (view.getVisibility() != View.GONE) { view.setVisibility(View.GONE); } } /** * 简单的跳转Activity * * @param clazz */ protected void startActivity(Class clazz) { Intent intent = new Intent(this, clazz); startActivity(intent); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public int dip2px(float dpValue) { final float scale = getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public int px2dip(float pxValue) { final float scale = getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }