base类准备
右键java包下项目,创建一个新package,命名base。
BaseActivity.java
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.example.xxx.utils.LogUtil;
import butterknife.ButterKnife;
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LogUtil.i(getClass().getSimpleName());//获取当前activity名字
setContentView();
ButterKnife.bind(this);
initData();
initView();
initEvent();
}
/**
* setContentView
*/
protected abstract void setContentView();
/**
* 初始化View
*/
protected abstract void initView();
/**
* 初始化数据
*/
protected abstract void initData();
/**
* 初始化事件
*/
protected abstract void initEvent();
}
Utils类准备
右键java包下项目,创建一个新package,命名Utils。
utility n.公用事业;功用,效用;有用的物体或器械;公用事业公司
——fanyi.baidu.com
LogUtil.java
import android.util.Log;
/**
* Logcat日志工具
*/
public class LogUtil {
private static final boolean debug = true; // TODO:正式上线为false
private static final String TAG = "松鼠鳜鱼";
public static void v(String tag, String msg) {
if (debug) { Log.v(tag, msg); }
}
public static void v(String msg) {
if (debug) { Log.v(TAG, msg); }
}
public static void d(String tag, String msg) {
if (debug) { Log.d(tag, msg); }
}
public static void d(String msg) {
if (debug) { Log.d(TAG, msg); }
}
public static void i(String tag, String msg) {
if (debug) { Log.i(tag, msg); }
}
public static void i(String msg) {
if (debug) { Log.i(TAG, msg); }
}
public static void w(String tag, String msg) {
if (debug) { Log.w(tag, msg); }
}
public static void w(String msg) {
if (debug) { Log.w(TAG, msg); }
}
public static void e(String tag, String msg) {
if (debug) { Log.e(tag, msg); }
}
public static void e(String msg) {
if (debug) { Log.e(TAG, msg); }
}
}
ScreenUtil.java
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.WindowManager;
/**
* 作者 没有感情的S686
* 时间 2018/12/15 21:21
* 描述 获取屏幕数据工具类
* 宽(px)/密度=屏幕实际宽度(dp),高(px)/密度=屏幕实际高度(dp)
* 获取屏幕宽高,减去margin,padding,从而可以获取组件宽高
*/
public class ScreenUtil {
private ScreenUtil() {
throw new UnsupportedOperationException("cannot be instantiated");
}
/**
* 获得屏幕宽度
* @param context activity or fragment
* @return 屏幕宽度
*/
public static int getScreenWidth(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();//描述关于显示器的一般信息,如大小、密度和字体缩放。
wm.getDefaultDisplay().getMetrics(metrics);
return metrics.widthPixels;
}
/**
* 获得屏幕高度
* @param context activity or fragment
* @return 屏幕高度
*/
public static int getScreenHeight(Context context){
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
return metrics.heightPixels;
}
/**
* 获得屏幕密度
* @param context activity or fragment
* @return 屏幕密度
*/
public static float getDensity(Context context){
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
return metrics.density;
}
}