BaseAndroid 是一个app基本库,每次创建一个app项目,基本都会用到一些内容,所以我把它集合起来,做成一个库的形式,方便导入使用。第一版,没什么经验,希望大家多多指出错误,提些建议,大胆的提 Issues吧。
目前版本的功能:
1、标题栏操作
2、BaseActivity BaseFramgent BaseFramgentActivity
3、常用操作
4、图片显示
5、网络请求
6、数据库操作
该库会根据大家需求陆续更新,希望大家支持下
集成进去的库目前有:
compile 'org.xutils:xutils:3.3.40'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.code.gson:gson:2.8.0'
项目中如果有上面用的库不需要再导入
Step 1. 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 {
...
compile 'com.github.LuoGuoXin:BaseAndroid:1.0.5'
}
2017/03/15 修改版本更新功能,一行代码实现
2017/02/15 增加加载框,增加BaseWebViewActivity
2017/02/10 增加版本更新下载功能(通知栏显示进度条,下载完成提示安装)
2017/02/05 增加网络请求的设置参数、修改标题栏背景色的设置方式(看下面初始化示例)
在Application里面加上
public class APP extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(true);
BaseAndroid.init(new BaseConfig()
.setAppColor(R.color.colorPrimary)//app主调颜色,用于标题栏等背景颜色
.setAppLogo(R.mipmap.ic_launcher)//app图标
.setFailPicture(R.mipmap.ic_launcher)//加载加载失败和加载中显示的图
.setCode(0)//网络请求成功返回的code数字,默认为1
.setHttpCode("code")//网络请求返回的code字段名称,默认为code
.setHttpMessage("msg")//网络请求返回的message字段名称,默认为message
.setHttpResult("resp"));//网络请求返回的result字段名称,默认为result
}
}
//常用操作
void init() {
//设置标题栏标题,记得先在布局上面添加标题栏布局: <include layout="@layout/titleview_layout"/>
setTitleText("标题");
//设置显示标题栏右边的按钮
setRightButtonText("编辑", new View.OnClickListener() {
@Override
public void onClick(View v) {
//右边按钮点击事件
}
});
//打开网页,一个好用的webview
Intent intent = new Intent(this, BaseWebViewActivity.class);
intent.putExtra(BaseWebViewActivity.URL, "http://www.baidu.com");
startActivity(intent);
//隐藏返回箭头
hideBack();
//弹出Toast
showToast("Toast");
//弹出加载窗口
startProgressDialog();
//弹出加载窗口,自定义提示
startProgressDialog("loading...");
//隐藏加载窗口
stopProgressDialog();
//设置透明状态栏
StatusBarCompat.translucentStatusBar(this);
//设置状态栏颜色
StatusBarCompat.setStatusBarColor(this, Color.BLUE);
//获取 TextView 和 EditView 的内容
TextView textView = new TextView(this);
getStr(textView);
//判断字符、TextView和EditView的内容是否为空
isNull(textView);
//打开一个Activity
// openActivity(XX.class);
//保存内容到 SharedPreferences,第一个参数为key,第二个参数为保存的内容
putSp("key", "内容");
//从SharedPreferences上获取数据,第一个参数为key,第二个参数为默认内容
getSp("key", "");
//清除SharedPreferences的数据
clearSp();
/**
* 版本更新
*
* @param context
* @param versionCode 版本号
* @param url apk下载地址
* @param updateMessage 更新内容
* @param isForced 是否强制更新
*/
BaseAndroid.checkUpdate(MainActivity.this,2,
"http://f5.market.mi-img.com/download/AppStore/0f4a347f5ce5a7e01315dda1ec35944fa56431d44/luo.footprint.apk",
"更新了XXX\n修复OOO", false);
}
//图片显示操作
void image(){
//显示正常的图片,本地:new File("/ssd/base.jpg");drawable:R.drawable.base
//图片加载使用 Glide ,感觉还是挺流畅好用的
BaseImage.getInstance().displayImage(MainActivity.this, "http://www.base.com/base.jpg", imageView);
//显示圆角图片
BaseImage.getInstance().displayRoundImage(MainActivity.this,"http://www.base.com/base.jpg", imageView);
//显示圆形图片
BaseImage.getInstance().displayCricleImage(MainActivity.this,"http://www.base.com/base.jpg", imageView);
}
//网络请求操作
//封装了下,onSuccess里面返回的result是请求成功(code=1)里面的内容,onError是code不等于1时的内容,网络错误时,code为-1
void http() {
RequestParams params = new RequestParams("http://www.base");
BaseHttp.get(params, new BaseHttp.BaseHttpCallback() {
@Override
public void onSuccess(String result) {
PersonBean personBean = GsonUtil.GsonToBean(result, PersonBean.class);
List<PersonBean> list = GsonUtil.GsonToList(result, PersonBean.class);
}
@Override
public void onError(int code, String message) {
showToast(message);
}
});
}
//数据库操作
void db() {
BaseDb.initDb();
//添加数据
for (int i = 0; i < 5; i++) {
PersonBean personBean = new PersonBean();
personBean.setName("小罗" + i);
personBean.setAge(25 + i);
BaseDb.add(personBean);
}
//查找数据
List<PersonBean> list = BaseDb.find(PersonBean.class);
LogUtil.i(GsonUtil.GsonString(list));
//修改数据
PersonBean bean = list.get(3);
bean.setName("修改名字为小小罗");
BaseDb.update(bean);
//删除一条数据
PersonBean personBean = list.get(2);
BaseDb.delete(personBean);
}