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
- MultiImageSelector设置头像调用
- MultiImageSelector
- 调用系统摄像头,设置头像
- android调用手机相机、相册,设置头像
- 调用系统相册,相机设置圆形头像
- 头像设置
- iOS 调用相机拍照和选择图库图片 设置头像
- 设置头像且调用手机中的图片编辑器
- android 调用系统图库和相机设置头像
- 头像设置(类似于CSDN的头像设置)
- wordpress 调用头像
- 点击头像,调用相机,相册改变头像
- 初来乍到:设置CSDN头像
- 设置WordPress博客头像
- 设置透明QQ头像
- 上传头像设置sessionid
- 设置头像圆角
- 新手入门:设置头像
- 第十六周项目四 英文单词的基数排序
- iOS 中info.plist文件中的完整研究
- jquery实现隔行变色
- Sublime Text 3 快捷键总结
- CSS3首页
- MultiImageSelector设置头像调用
- js的动画效果(封装运动框架)
- php 依赖注入
- 鸟人的Android揭秘(2)——通过启动过程分析 Android Framework
- 设计模式学习4——单例模式
- python多进程并发之multiprocessing
- win32不规则窗口详解
- 基于JXL和POI实现的读写Excel工具类(支持.xls和.xlsx格式)
- 如何自定义虚线背景框