查看在线pdf文档:
http://note.youdao.com/s/EM20Cggm
以下是我的基本UI组件该系列的文章,欢迎大家转载和分享:
基本UI组件的封装库(一)——basicUI
基本UI组件的封装库(二)——basicUI
基本UI组件的封装库——basicUI的demo的编写
基本UI组件的封装库(三)——basicUI
基本UI组件的封装库(四)——basicUI
basicUI(五)——RecycleView的下拉刷新、加载更多和多状态布局实现
basicUI(六)——工具类的封装
basicUI(七)——Android启动优化之启动器开发
项目库的GitHub地址:https://github.com/Peakmain/BasicUI
- 如果大家觉得有点帮助,希望可以抬抬你的贵手,送我一个星星,谢谢。如果有什么问题,也欢迎你在下方留言或者在BasicUI中提
前言
这次版本主要加了的是:1、okhttp的网络引擎切换(支持get,post,上传,单线程下载,多线程下载),2、glide图片选择库的切换,3、数据库SQLiteDatabase的封装
How to
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.Peakmain:BasicUI:1.0.2'
}
okhttp的第三方网络引擎切换
image.png- get请求方式
HttpUtils.with(OkHttpActivity.this)
.url("http://i.jandan.net/")
.addParams("oxwlxojflwblxbsapi", "jandan.get_pic_comments")
.addParams("page", "1")
.execture(new EngineCallBack() {
@Override
public void onError(Exception e) {
LogUtils.e(e.getMessage());
}
@Override
public void onSuccess(String result) {
mTvResult.setText(result);
}
});
- post请求方式
HttpUtils.with(OkHttpActivity.this)
.url("https://www.wanandroid.com/user/login")
.addParams("username", "peakmain")
.addParams("password", "123456")
.post()
.execture(new EngineCallBack() {
@Override
public void onError(Exception e) {
LogUtils.e(e.getMessage());
}
@Override
public void onSuccess(String result) {
mTvResult.setText(result);
}
});
- 单线程下载
File file = new File(Environment.getExternalStorageDirectory(), "test.apk");
if (file.exists()) {
file.delete();
}
HttpUtils.with(OkHttpActivity.this)
.url("http://imtt.dd.qq.com/16891/apk/87B3504EE9CE9DC51E9F295976F29724.apk")
.downloadSingle()
.file(file)
.exectureDownload(new DownloadCallback() {
@Override
public void onFailure(Exception e) {
LogUtils.e(e.getMessage());
}
@Override
public void onSucceed(File file) {
ToastUtils.showShort("file下载完成");
LogUtils.e("文件保存的位置:" + file.getAbsolutePath());
mProgressBar.setVisibility(View.GONE);
mProgressBar.setProgress(0);
}
@Override
public void onProgress(int progress) {
LogUtils.e("单线程下载apk的进度:" + progress);
mProgressBar.setProgress(progress);
mProgressBar.setVisibility(View.VISIBLE);
}
});
- 多线程下载
file = new File(Environment.getExternalStorageDirectory(), "test.apk");
if (file.exists()) {
file.delete();
}
HttpUtils.with(OkHttpActivity.this)
.url("http://imtt.dd.qq.com/16891/apk/87B3504EE9CE9DC51E9F295976F29724.apk")
.downloadMutil()
.file(file)
.exectureDownload(new DownloadCallback() {
@Override
public void onFailure(Exception e) {
LogUtils.e(e.getMessage());
}
@Override
public void onSucceed(File file) {
LogUtils.e(file.getAbsolutePath() + "," + file.getName());
Toast.makeText(OkHttpActivity.this, "下载完成", Toast.LENGTH_LONG).show();
mProgressBar.setVisibility(View.GONE);
mProgressBar.setProgress(0);
}
@Override
public void onProgress(int progress) {
LogUtils.e(progress + "%");
mProgressBar.setVisibility(View.VISIBLE);
mProgressBar.setProgress(progress);
}
});
- 切换引擎的方法
默认是okHttpEngine
HttpUtils.with(OkHttpActivity.this)
.exchangeEngine(切换的引擎)
或者在application中直接初始化
HttpUtils.init(初始化的引擎);
gilde图片选择库切换
image.png- 简单使用
ImageLoader.getInstance().displayImage(this, data.get(0).getUrl(), mImageView);
- 占位图的使用
ImageLoader.getInstance().displayImage(this, data.get(1).getUrl(), mImageView, R.mipmap.ic_default_portrait);
- 圆角图片
ImageLoader.getInstance().displayImageRound(this, data.get(2).getUrl(), mImageView,50 ,0);
- 指定图片的大小
ImageLoader.getInstance().displayImage(this,data.get(4).getUrl(),mImageView,800,800,0);
- 切换图片加载库
ImageLoader.getInstance().exchangeImageLoader(切换的库)
Sqlitedatabase数据库封装的使用
- 1、需要实体类实现空的构造方法
-2、获得IDaoSupport实体类
IDaoSupport<Person> dao = DaoSupportFactory.getInstance().getDao(Person.class);
- 3、插入数据
dao.insert(persons);
- 4、查询数据
查询所有数据
List<Person> list = dao.querySupport().queryAll();
查询指定数据:如指定指定名字的范围
dao.querySupport().selection("name like ?").selectionArgs(new String[]{"新%"}).query();
- 5、删除数据
需要传入两个参数
1、条件 2、条件参数
源码
int delete(String whereClause, String... whereArgs);
如下删除年龄109的数据,返回的是删除数据所在位置的索引
dao.delete("age = ?", new String[]{"109"});
- 6、更新数据
需要传入三个参数,1、新数据的实体类,2、条件 3、条件参数
源码
int update(T obj, String whereClause, String... whereArgs);
如下更新年龄是108的数据
dao.update(new Person("peakmain", 18), "age =?", new String[]{"108"});
网友评论