依賴
//sql
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
//三方
maven { url "https://jitpack.io" }
dependencies下依賴
//butterknife
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//okhttp/攔截器
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
//Gson解析
implementation 'com.google.code.gson:gson:2.8.1'
//Glide圖片加載
implementation 'com.github.bumptech.glide:glide:4.8.0'
//recyclerView
implementation 'com.android.support:recyclerview-v7:28.0.0'
//MetrialDesign:Design庫
implementation 'com.android.support:design:28.+'
//Brvah:RecyclerView快速開發框架
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
//fresco
implementation 'com.facebook.fresco:fresco:1.13.0'
//魅族banner
implementation 'com.github.pinguo-zhouwei:MZBannerView:v2.0.2'
//SmartRefreshLayout
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-19'
//sql
implementation 'org.greenrobot:greendao:3.2.2' // add library
greendao {
schemaVersion 1 //數據庫版本號
daoPackage 'gxq.com.rk02.greenDao.db'
// 設置DaoMaster、DaoSession、Dao 包名
targetGenDir 'src/main/java'//設置DaoMaster、DaoSession、Dao目錄
generateTests false //設置爲true以自動生成單元測試。
targetGenDirTests 'src/main/java' //應存儲生成的單元測試的基本目錄。默認爲 src / androidTest / java。
}
//App
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
//設置磁盤緩存
DiskCacheConfig cacheConfig = DiskCacheConfig.newBuilder(this)
.setBaseDirectoryName("fimages")
.setBaseDirectoryPath(Environment.getExternalStorageDirectory())
.build();
//設置磁盤緩存的配置,生成配置文件
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(cacheConfig)
.build();
//Fresco
Fresco.initialize(this,config);
//數據庫
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "ccc.db");
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
private static DaoSession daoSession;
public static DaoSession getDaoSession() {
return daoSession;
}
}
//utils
//ok
public class OkHttpUtils<T> {
private final OkHttpClient okHttpClient;
//私有化
private OkHttpUtils(){
okHttpClient = new OkHttpClient.Builder().build();
}
public static OkHttpUtils getHttpUtilsInstance(){
return HttpUtilsInstance.okHttpUtils;
}
private static class HttpUtilsInstance{
public static OkHttpUtils okHttpUtils = new OkHttpUtils();
}
//get
public void getData(String url, final Class<T> tClass , final CallBackData callBackData){
this.backData = callBackData;
final Request request = new Request.Builder().url(url).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBackData.onFail(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
T t = gson.fromJson(string, tClass);
callBackData.onResponse(t);
}
});
}
//post
public void postData(String url, HashMap<String,String> hashMap, final Class<T> tClass, final CallBackData callBackData){
this.backData = callBackData;
FormBody.Builder builder = new FormBody.Builder();
for (String key : hashMap.keySet()) {
builder.add(key,hashMap.get(key));
}
FormBody formBody = builder.build();
final Request request = new Request.Builder().url(url).post(formBody).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBackData.onFail(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
T t = gson.fromJson(string, tClass);
callBackData.onResponse(t);
}
});
}
//接口回調
CallBackData backData;
//接口回調
public interface CallBackData<D>{
void onResponse(D d);
void onFail(String massage);
}
}
//判斷網絡
public boolean isNetWirkConnected(Context context){
if (context!=null){
ConnectivityManager systemService = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = systemService.getActiveNetworkInfo();
if (activeNetwork!=null){
return activeNetwork.isAvailable();
}
}
return false;
}
// 3d MZBanner
// 設置數據
banner.setPages(result, new MZHolderCreator<BannerViewHolder>() {
@Override
public BannerViewHolder createViewHolder() {
return new BannerViewHolder();
}
});
//BannerViewHolder
public static class BannerViewHolder implements MZViewHolder<BannerBean.ResultBean> {
private ImageView mImageView;
@Override
public View createView(Context context) {
// 返回頁面佈局
View view = LayoutInflater.from(context).inflate(R.layout.item_banner, null);
mImageView = (ImageView) view.findViewById(R.id.banner_image);
return view;
}
@Override
public void onBind(Context context, int position, BannerBean.ResultBean data) {
// 數據綁定
Glide.with(context).load(data.getImageUrl()).into(mImageView);
}
}