//图片选择器 private void matisse() { Matisse.from(BasicDataActivity.this) .choose(MimeType.allOf()) .countable(true) .capture(true) .captureStrategy( new CaptureStrategy(true, "包名")) .maxSelectable(1) .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) .gridExpectedSize( getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) .theme(R.style.Echarge) .thumbnailScale(0.85f) .imageEngine(new PicassoEngine()) .forResult(REQUEST_CODE_CHOOSE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) { mSelected = Matisse.obtainResult(data); Uri uri = mSelected.get(0); Bitmap smallBitmap = null; try { smallBitmap = ImageUtils.getBitmapFromUri(uri, BasicDataActivity.this); image2Up(smallBitmap); } catch (IOException e) { } } } /** * 上传图片 * * @param smallBitmap */ private void image2Up(final Bitmap smallBitmap) { Retrofit retrofit1 = RetrofitUtils.retrofitutild(BasicDataActivity.this, Interface.BASEURL2, "图片上传中..."); BaseApi baseApi = retrofit1.create(BaseApi.class); String s = ImageUtils.bitmapToString(smallBitmap); Call<PublicBean> call = baseApi.getModifyavatar(SharePreferenceUtils.getToken(BasicDataActivity.this), s); call.enqueue(new Callback<PublicBean>() { @Override public void onResponse(Call<PublicBean> call, Response<PublicBean> response) { RetrofitUtils.loadingDialog.dismiss(); PublicBean bean = response.body(); if (bean == null) return; if (bean.getCode() == 0) { instance.put("avr", mSelected.get(0).toString()); Uri uri = mSelected.get(0); GlideUtils.loadImageViewSize(BasicDataActivity.this, uri, 180, 180, R.mipmap.ic_default_avatars, mCiAvatar); } else if (bean.getCode() == 2) { TokenDialogUtils.tokenDialog(BasicDataActivity.this); } else { //Toast.makeText(BasicDataActivity.this, bean.getError().toString(), Toast.LENGTH_SHORT).show(); DialogUtils.showAlertDialog(BasicDataActivity.this, bean.getError().toString()); } } @Override public void onFailure(Call<PublicBean> call, Throwable t) { RetrofitUtils.loadingDialog.dismiss(); t.printStackTrace(); } }); } @Override public void onAllGranted(String[] allPermissions) { matisse(); } @Override public void onDeined(String[] dinedPermissions) { //displayFrameworkBugMessageAndExit(); }
//点击启动
new RTPermission.Builder() .permissions( Manifest.permission.CAMERA ) .start(this, this);