GalleryFinal 图片选择器的使用

引入

galleryfinal-1.4.8.7.aar

ToolsFinal-1.1.5-release.jar

 

https://github.com/pengjianbo/GalleryFinal

 

aar 比 jar 更好,更先进,aar可以改后缀rar,打开会发现它里面有一个jar 还有其他资源文件

添加aar的方法和jar差不多  文件复制到libs目录 然后在app的build.gradle文件中  多添加 repositories 

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile files('libs/butterknife-7.0.1.jar')
    compile files('libs/glide-3.7.0.jar')
    compile(name: 'galleryfinal-1.4.8.7', ext: 'aar')
    compile(name: 'actionsheet-1.1.6', ext: 'aar')
}

 

在application中 设置 ThemeConfig FunctionConfig  ImageLoader CoreConfig 

这里可以选择自己用的图片加载方式

 

然后就可以在逻辑代码中调用了,第一个参数是请求码,回调时可以用,第二个参数是功能配置,如果不设置就默认用application中的配置,第三个是回调

GalleryFinal.openGallerySingle(200,mOnHanlderResultCallback);

FunctionConfig functionConfig=new FunctionConfig.Builder().setEnableCamera(true).setEnableEdit(true)
                                .setEnableCrop(true).setEnableRotate(true).setEnablePreview(true).setForceCrop(true).setForceCropEdit(true).build();
GalleryFinal.openCamera(100,functionConfig,mOnHanlderResultCallback);

 

回调  成功回调onHanlderSuccess  返回请求码i 和 list,可以针对不同的请求码作出不同的操作,这里只选了一张图片,所以直接get(0),再用getPhotoPath()方法得到路径

universalimageloader  加载时前面还要加上 "file:/"   ,Glide 则不用,因为源码给的Glide 加载方案中已经加上了 "file:/"  

三星手机上 用相机拍出来的照片 用 universalimageloader  加载是 斜的,用Glide 加载就是正常的。其他手机没有这个问题,所以有必要设置一下 功能配置 setForceCropEdit(true)  强制对图片进行编辑:旋转一下

    private GalleryFinal.OnHanlderResultCallback mOnHanlderResultCallback=new GalleryFinal.OnHanlderResultCallback() {
        @Override
        public void onHanlderSuccess(int i, List<PhotoInfo> list) {
            if (list!=null){
                if (i==100){
                    Logger.e("openCamera");
                }else if (i==200){
                    Logger.e("openGallerySingle");
                }
                DisplayImageOptions options = new DisplayImageOptions.Builder()
                        .showImageOnFail(R.drawable.ic_gf_default_photo)
                        .showImageForEmptyUri(R.drawable.ic_gf_default_photo)
                        .showImageOnLoading(R.drawable.ic_gf_default_photo).build();

                ImageLoader.getInstance().displayImage("file:/" + list.get(0).getPhotoPath(), imageView, options);
                ImageLoader.getInstance().displayImage("file:/" + list.get(0).getPhotoPath(), shapedImageView, options);


                Glide.with(mContext).load(list.get(0).getPhotoPath()).into(imageView2);

                final BmobFile bmobFile=new BmobFile(new File(list.get(0).getPhotoPath()));
                bmobFile.uploadblock(new UploadFileListener() {
                    @Override
                    public void done(BmobException e) {
                        if (e==null){
                            showToast("上传文件成功:" + bmobFile.getFileUrl());
                            Glide.with(mContext).load(bmobFile.getFileUrl()).into(ivbmob);
                        }else {
                            showToast("上传文件失败:" + e.getMessage());
                        }
                    }
                });
            }
        }

        @Override
        public void onHanlderFailure(int i, String s) {
            showToast(s);
        }
    };

 

posted @ 2016-08-11 14:14  demon9  阅读(4003)  评论(0编辑  收藏  举报