如果我学会了,你们肯定也能学会
其实困难真的很难,
难在了我们要经历漫长的探索解决Bug的过程,这段时间不仅会消磨掉我们的时间,也会消磨掉我们的意志,
难在停下了前进的脚步,难在了我们没有太多解决问题的思路,难在了我们每个人都是那么的独特,那么个性,
我们总是感觉输在了起跑线上,就会输掉整个结局,其实这个世界并没有输和赢,输和赢本来就不存在,只是我们总是习惯性地给自己添加上这个麻烦,心理没有输和赢得人,只会有一种状态,活的坦然,也获得舒然,心里总是有输赢的人,有两种状态,一种是极端的成就,会处于俯视的状态,一种是极端的自负,
我是一名码农,这是我的丰收年
、、、、、、、、、、、、、、、、、
首先获取动态权限
//判断6.0大于等于.当前权限时,直接运行,超过6.0的话动态调取权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA},1001);
}
}else {
}
打开相机后的的处理数据
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
Intent it = new Intent("com.android.camera.action.CROP");
//得到拍完的照片进行裁剪
it.setDataAndType(Uri.fromFile(new File(path)), "image/*");
//设置是否支持裁剪
it.putExtra("crop", true);
//设置框的宽高比
it.putExtra("aspactX", 1);
it.putExtra("aspactY", 1);
//设置输出的照片
it.putExtra("outputX", 250);
it.putExtra("outputY", 250);
//将图片返回
it.putExtra("return-data", true);
startActivityForResult(it, 300);
}
//设置裁剪
if (requestCode == 200 && resultCode == RESULT_OK) {
//得到图片路径
Uri uri = data.getData();
//调用系统裁剪功能
Intent it = new Intent("com.android.camera.action.CROP");
//得到照片进行裁剪
it.setDataAndType(uri, "image/*");
//设置是否支持裁剪
it.putExtra("crop", true);
//设置框的宽高比
it.putExtra("aspactX", 1);
it.putExtra("aspactY", 1);
//设置输出图片大小
it.putExtra("outputX", 250);
it.putExtra("outputY", 250);
//将图片返回
it.putExtra("return-data", true);
startActivityForResult(it, 300);
}
//裁剪完后回到设置图片
if (requestCode == 300 && resultCode == RESULT_OK) {
Bitmap bitmap = data.getParcelableExtra("data");
//获取文件路径
File file = new File(getFilesDir().getAbsolutePath());
if (!file.exists()) {
//如果路径不存在就创建
file.mkdirs();
}
//创建文件
File file1 = new File(file, "photo.png");
FileOutputStream fileOutputStream;
try {
//文件输出流
fileOutputStream = new FileOutputStream(file1);
//将bitmap写入文件流
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
//刷新此输出流并强制将所有缓冲的输出字节被写出
fileOutputStream.flush();
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
headActivitySdvPic.setImageBitmap(bitmap);
// ToastUtils.showToast("获取到了");
// updataPresenter.getUpdataHeadPic(Integer.parseInt(LoginUntils.getUserId()), LoginUntils.getSessionId(), file1);
upLoadIcon(file1);
}
}
上传头像和打开相册事件,相机的处理
//上传头像
private void upLoadIcon(File file1) {
userId = san.getInt("userid", 0);
sessionId = san.getString("sessid", null);
// uid = san.getInt("uid", 0) + "";
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file1);
// final RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData("image", file1.getName(), requestBody);
RetrofitUtil.getDefault().create(GetApi.class).upLoadIcon(userId, sessionId, part)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ShangchBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ShangchBean xiuPwdBean) {
SharedPreferences.Editor sanEditor = getSharedPreferences("san", Context.MODE_PRIVATE).edit();
String headPath = xiuPwdBean.getHeadPath();
sanEditor.putString("title", headPath).commit();
Toast.makeText(GerenXinxiActivity.this, "" + xiuPwdBean.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
@OnClick(R.id.gr_tximg)
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.gr_tximg:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("添加图片");
String[] items = {"选择本地照片", "拍照"};
builder.setNegativeButton("取消", null);
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0: // 选择本地照片
//打开相册
Intent intent = new Intent(Intent.ACTION_PICK);
//设置图片格式
intent.setType("image/*");
startActivityForResult(intent, 200);
break;
case 1: // 拍照
//打开相机
Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//将图片放到SD card
intent1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
startActivityForResult(intent1, 100);
break;
}
}
});
builder.show();
break;
}
}