零.使用的路径

String path = Environment.getExternalStorageDirectory() + "/head.jpg";

一.首先添加权限

            


二.调用相机

// 这个出捕获图片的常量值                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                // 设置图片输出位置; 输出到制定的uri路径上;                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));                // 设置请求码                startActivityForResult(intent, 100);
三.调用相册


Intent intent = new Intent(Intent.ACTION_PICK);                intent.setType("image/*");                startActivityForResult(intent, 101);

四.剪切的方法


/**     * 剪切     */    public void crop(Uri uri) {        // 隐式启动, 里面传的是action        Intent intent = new Intent("com.android.camera.action.CROP");        intent.setDataAndType(uri, "image/*");        intent.putExtra("crop", "true");        // 裁剪框的比例,1:1        intent.putExtra("aspectX", 1);        intent.putExtra("aspectY", 1);        // 裁剪后输出图片的尺寸大小        intent.putExtra("outputX", 250);        intent.putExtra("outputY", 250);        intent.putExtra("outputFormat", "JPEG");// 图片格式        intent.putExtra("noFaceDetection", false);// 取消人脸识别        // 设置剪裁后是否返回数据        intent.putExtra("return-data", true);        // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT        startActivityForResult(intent, 102);    }



五.返回调用

@Override    protected void onActivityResult ( int requestCode, int resultCode, Intent data){        super.onActivityResult(requestCode, resultCode, data);        Log.e("resultCode:---", resultCode + "");        if (requestCode == 100 && resultCode == RESULT_OK) {//          iv.setImageURI(Uri.fromFile(new File(path)));//            crop(Uri.fromFile(new File(path)));            uploadFiles(new File(path));        } else if (requestCode == 101 && resultCode == RESULT_OK) {            // 获取data中的数据            Uri uri = data.getData();//         iv.setImageURI(uri);//            crop(uri);            String[] proj = { MediaStore.Images.Media.DATA };            Cursor actualimagecursor = managedQuery(uri,proj,null,null,null);            int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);            actualimagecursor.moveToFirst();            String img_path = actualimagecursor.getString(actual_image_column_index);            File file = new File(img_path);            Log.e("MainActivity","URL:"+uri.toString());            uploadFiles(file);        } else if (requestCode == 102 && resultCode == RESULT_OK) {            //这个参数data,是固定写法            File file=new File(path);            Bitmap bitmap = data.getParcelableExtra("data");            try {                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);                bos.flush();                bos.close();            } catch (IOException e) {                e.printStackTrace();            }            //上传            uploadFiles(file);        }







更多相关文章

  1. Android4.2锁屏源码跟踪
  2. Android音频流程二(Binder部分)
  3. android 实现圆形imageView,Circle imageView.
  4. 进程内服务Service(SimpleRandomServiceDemo)
  5. Android(安卓)游戏框架 libgdx 学习笔记 - Log 使用
  6. Android(安卓)P 各种ANR的时间
  7. 细说dex2oat(3)
  8. 【Android】- MediaPlayer错误之MediaPlayer start called in st
  9. Android(安卓)UI学习 - Tab的学习和使用

随机推荐

  1. [Android]Smali语法
  2. Android 翻牌动画 实现
  3. Android中判断网络是否连接实例详解
  4. FregServer进程,启动Binder线程池,睡眠等待
  5. android与服务器连接保持
  6. 轻松实现Android锁屏功能
  7. Android《内嵌浏览器-WebView》
  8. Android进程保活招式大全
  9. Mac无法编译android
  10. 31、android打开文件夹并列出里面的文件