我的github: https://github.com/crazyandcoder
我的博客: http://crazyandcoder.github.io/
android开发过程中常用功能的集合。我们在android项目开发过程中基本上每个APP都会涉及到的功能,譬如:拍照上传头像、省市区地址选择、焦点图等通用功能,如果每个APP都要写一遍的话基本上都是很费事的,所以我就打算搞一个library,直接添加即可,省事,简单。
LijiAndroidUtils
android APP项目开发过程中通用功能的集成工具。
V0.1.0更新说明
- 初始版本
- 增加省市区城市地址选择(仿iOS滚轮实现)
- 增加头像拍照功能
Download
- 使用Gradle
compile 'liji.library.dev:app:0.1.0'
- 使用Maven
<dependency>
<groupId>liji.library.dev</groupId>
<artifactId>app</artifactId>
<version>0.1.0</version>
<type>pom</type>
</dependency>
友情提醒
如果在添加gradle依赖过程中出现以下问题:
Manifest merger failed : Attribute application@name value=(@string/app_name)
请按照如下方式修改工程中的manifest.xml文件
在manifest标签下面添加
xmlns:tools="http://schemas.android.com/tools"
在application标签下面添加
tools:replace="android:name"
重新编译即可,可参考:Manifest merger failed
如何使用
由于在图片处理这一块使用了第三方开源控件galleryfinal和universalimageloader所以需要在Application中进行初始化配置,例如:新建一个MyApplication继承Application,然后在onCreate中进行配置:
public class MApplication extends Application {
@Override
public void onCreate()
super.onCreate();
initImageLoader();
initGalleryFinal();
}
private void initGalleryFinal() {
//设置主题
//ThemeConfig.CYAN
ThemeConfig theme = ThemeConfig.DEFAULT;
//配置功能
FunctionConfig functionConfig = new FunctionConfig.Builder().setEnableCamera(true)
.setEnableEdit(true)
.setEnableCrop(true)
.setEnableRotate(true)
.setCropSquare(true)
.setEnablePreview(true)
.build();
//配置imageloader
cn.finalteam.galleryfinal.ImageLoader imageloader = new GlideImageLoader();
CoreConfig coreConfig = new CoreConfig.Builder(this, imageloader, theme).setFunctionConfig(functionConfig)
.build();
GalleryFinal.init(coreConfig);
}
/**
* 设置图片加载方式
*/
private void initImageLoader() {
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder().cacheInMemory(true)
.cacheOnDisc(true)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.discCacheSize(50 * 1024 * 1024)//
.discCacheFileCount(100)//缓存一百张图片
.writeDebugLogs()
.build();
ImageLoader.getInstance().init(config);
}
}
1、使用省市区地址选择器
- 可以单独使用,详情查看https://github.com/crazyandcoder/citypicker
- 在LijiAndroidUtils工具中使用
CityPickerView cityPickerView = new CityPickerView(MainActivity.this);
cityPickerView.setOnCityItemClickListener(new CityPickerView.OnCityItemClickListener() {
@Override
public void onSelected(String... citySelected) {
//省份
String province = citySelected[0];
//城市
String city = citySelected[1];
//区县
String district = citySelected[2];
//邮编
String code = citySelected[3];
}
});
cityPickerView.show();
结果返回:
只需传入Context便可获取选择的省市区域的信息,结果返回四项,可根据自己的实际需求进行选择。
citySelected[0]:表示:省份信息
citySelected[1]:表示:城市信息
citySelected[2]:表示:区县信息
citySelected[3]:表示:邮编信息
效果演示:
2、头像选择
PictureSelectPop pictureSelectPop = new PictureSelectPop(getContext(), new com.liji.dev.androidutils.utils.citypickerWheelView.widget.XCallbackListener() {
@Override
protected void callback(Object... obj) {
ImageLoader.getInstance().displayImage((String) obj[0], roundImageView);
}
});
pictureSelectPop.show();
结果返回:
传入context以及一个回调,该回调中包含选择图片后在手机中存储的地址obj[0]即表示选中的图片在手机中存储的地址。
效果演示: