android城市选择器和拍照上传功能

我的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、使用省市区地址选择器
  1. 可以单独使用,详情查看https://github.com/crazyandcoder/citypicker
  2. 在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]即表示选中的图片在手机中存储的地址。

效果演示:


http://crazyandcoder.github.io/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值