MultiImageSelector设置头像调用

来源:互联网 发布:中国餐饮市场数据报告 编辑:程序博客网 时间:2024/06/05 23:53

1.android studio  Gradle配置

//MultiImageSelectorcompile 'com.github.lovetuzitong:MultiImageSelector:1.2'compile 'com.squareup.picasso:picasso:2.5.2'

repositories {    //用来清除无用资源的插件    maven { url "https://jitpack.io" }}

2.直接贴代码,具体看代码注释

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import com.facebook.drawee.backends.pipeline.Fresco;import com.facebook.drawee.generic.RoundingParams;import com.facebook.drawee.view.SimpleDraweeView;import com.facebook.imagepipeline.core.ImagePipeline;import java.io.File;import java.util.HashMap;import java.util.List;import java.util.Map;import api.status;import butterknife.Bind;import butterknife.ButterKnife;import butterknife.OnClick;import data.DataManager;import me.nereo.multi_image_selector.MultiImageSelector;import me.nereo.multi_image_selector.MultiImageSelectorActivity;import tool.OkHttp3ClientManager;import tool.PUB;import tool.PermissionUtils;import tool.ToastUtil;import static com.dykj.hongchunshu.MainActivity.mLogin;/************************************************************ * Explain:设置头像 * Create by TongZhenggang@126.com ***********************************************************/public class SetHeadActivity extends Activity {    @Bind(R.id.icon_activity_change_icon)    TextView mIconChange;    @Bind(R.id.icon_activity_save)    TextView mIconSave;    @Bind(R.id.icon_activity_cancle)    TextView mIconCancle;    @Bind(R.id.img_main_back)    ImageView imgMainBack;    @Bind(R.id.tv_title)    TextView tvTitle;    @Bind(R.id.icon_activity_civ)    SimpleDraweeView iconActivityCiv;    private Activity mActivity;    private String mPhotopath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tempphoto.jpg";    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mActivity = this;        setContentView(R.layout.activity_icon);        ButterKnife.bind(this);        //android 6.0 申请权限        PermissionUtils.requestPermission(this, PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionGrant() {            @Override            public void onPermissionGranted(int requestCode) {//                Toast.makeText(mActivity, "Result Permission Grant CODE_WRITE_EXTERNAL_STORAGE", Toast.LENGTH_SHORT).show();            }        });        InitDta();    }    /*    * Explain:绑定视图    * Create by TongZhenggang@126.com    */    private void InitDta() {        tvTitle.setText("设置头像");        /*返回*/        imgMainBack.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                finish();            }        });        //绑定头像        Uri uri = Uri.parse(DataManager.Domain + mLogin.getResult().getHead_pic());        iconActivityCiv.setImageURI(uri);        //圆形展示        RoundingParams roundingParams = RoundingParams.fromCornersRadius(5f);        roundingParams.setBorder(R.color.red, 0.1f);        roundingParams.setRoundAsCircle(true);        iconActivityCiv.getHierarchy().setRoundingParams(roundingParams);    }    /**     * 拍照和选择     *     * @param view     */    @OnClick({R.id.icon_activity_change_icon, R.id.icon_activity_save, R.id.icon_activity_cancle})    public void onClick(View view) {        switch (view.getId()) {            case R.id.icon_activity_change_icon:                MultiImageSelector.create(mActivity)                        .showCamera(true) // 是否显示相机. 默认为显示                        .count(10) // 最大选择图片数量, 默认为9. 只有在选择模式为多选时有效                        .single() // 单选模式//                        .multi() // 多选模式, 默认模式;//                        .origin(null) // 默认已选择图片. 只有在选择模式为多选时有效                        .start(mActivity, 0);                break;        }    }    /**     * 裁剪图片     *     * @param uri     */    public void startPhotoZoom(Uri uri) {        Intent intent = new Intent("com.android.camera.action.CROP");        intent.setDataAndType(uri, "image/*");        intent.putExtra("crop", "true");// crop=true 有这句才能出来最后的裁剪页面.        intent.putExtra("aspectX", 4);// 这两项为裁剪框的比例.        intent.putExtra("aspectY", 4);// x:y=1:2        intent.putExtra("outputX", 200);        intent.putExtra("outputY", 200);        intent.putExtra("output", Uri.fromFile(new File(mPhotopath)));        intent.putExtra("outputFormat", "JPEG");// 返回格式        intent.putExtra("return-data", true);        startActivityForResult(intent, 1);    }    /**     * 返回接收数据处理     *     * @param requestCode     * @param resultCode     * @param data     */    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode) {            case 0://选择或拍照后返回                try {                    // 获取返回的图片列表(存放的是图片路径)                    List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);                    if (path.size() > 0) {                        // 处理你自己的逻辑 ....                        PUB.tlog.d(path);                        File mFile = new File(path.get(0).toString());                        if (mFile.exists()) {                            //裁剪                            startPhotoZoom(Uri.fromFile(mFile));                        } else {                            ToastUtil.show(getApplicationContext(), "文件不存在!");                        }                    }                }                catch (Exception ex){                    PUB.tlog.i(ex);                }                break;            case 1://裁剪图片后                 if (data == null) {                    return;                 }                Uri uri = Uri.parse("file://" + mPhotopath);                iconActivityCiv.setImageURI(uri);                //上传照片                File file = new File(mPhotopath);                DoUpload(file);                break;        }        super.onActivityResult(requestCode, resultCode, data);    }    /**     * 上传照片     *     * @param file     */    private void DoUpload(File file) {        Map<String, Object> map = new HashMap<String, Object>();        map.put("user_id", MainActivity.mLogin.getResult().getUser_id());        Handler mHandler = new Handler() {            @Override            public void handleMessage(Message msg) {                super.handleMessage(msg);                if (msg.what == 0) {// 请求成功                    status api = new status();                    api = (status) msg.obj;                    if (api.status == 1) {                        //成功                        mLogin.getResult().setHead_pic(api.result.toString());                        Uri uri = Uri.parse(DataManager.Domain + mLogin.getResult().getHead_pic());                        ImagePipeline imagePipeline = Fresco.getImagePipeline();                        imagePipeline.evictFromMemoryCache(uri);                        imagePipeline.evictFromDiskCache(uri);                        // combines above two lines                        imagePipeline.evictFromCache(uri);                        //删除照片                        File file = new File(mPhotopath);                        if (file.exists()) {                            file.delete();                            //文件删除                            PUB.tlog.d("删除文件:" + mPhotopath);                        }                        finish();                    }                    ToastUtil.show(getApplicationContext(), api.msg);                } else {                    ToastUtil.show(getApplicationContext(), msg.obj.toString());                }            }        };        OkHttp3ClientManager.getInstance().photoUploadExecute(DataManager.API("update_pic"), map, "file", file, mHandler, status.class);    }}



0 0