zoukankan      html  css  js  c++  java
  • Android 调用图库选择图片实现和参数详解

            //选择图片,调用图库
            bt4.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                    intent.setType("image/*");
                    intent.putExtra("crop", true);
                     intent.putExtra("return-data", true);
                    startActivityForResult(intent, 2);
                }
            });
           

    获取得到的图片

    这是一个回调函数,选择完图片,第一个if 判断是否返回成功,第二个if  判断requestCode和上面 startActivity(),里的参数相同,就获取图片  ,注意:在上面按钮里一定要加上这句话: intent.putExtra("return-data", true);  否则返回的data 为空,稍后详 细讲解参数的作用

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
             super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                System.out.println("requestCode"+requestCode);
             if (requestCode == 2) {
                 Uri uri = data.getData();
                 System.out.println(uri.getPath());
                
                  
                   
                   try {
                    bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));//获取得到的图片
                      
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        }

        }

    Android中 调用图库选择图片的参数详解


    Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);  

     intent.setType("image/*");    //这个参数是确定要选择的内容为图片,

    intent.putExtra("crop", "circle");   //设置了参数,就会调用裁剪,如果不设置,就会跳过裁剪的过程。
    intent.putExtra("aspectX", 33);  //这个是裁剪时候的 裁剪框的 X 方向的比例。

    intent.putExtra("aspectY",43);  //同上Y 方向的比例. (注意: aspectX, aspectY ,两个值都需要为 整数,如果有一个为浮点数,就会导致比例失效。)

    //设置aspectX 与 aspectY 后,裁剪框会按照所指定的比例出现,放大缩小都不会更改。如果不指定,那么 裁剪框就可以随意调整了。

    intent.putExtra("outputX", 50);  //返回数据的时候的 X 像素大小。

     intent.putExtra("outputY", 100);  //返回的时候 Y 的像素大小。

    //以上两个值,设置之后会按照两个值生成一个Bitmap, 两个值就是这个bitmap的横向和纵向的像素值,如果裁剪的图像和这个像素值不符合,那么空白部分以黑色填充。

    intent.putExtra("noFaceDetection", true); // 是否去除面部检测, 如果你需要特定的比例去裁剪图片,那么这个一定要去掉,因为它会破坏掉特定的比例。

     intent.putExtra("return-data", true);  //是否要返回值。 一般都要。我第一次忘加了,总是取得空值,囧!

    startActivityForResult(intent, 1);

  • 相关阅读:
    python学习笔记 day14 各种推导式
    python学习笔记 day14 生成器表达式
    python学习笔记 day14 生成器进阶(二)
    python学习笔记 day14 生成器进阶
    python学习笔记 day13 迭代器
    python 学习笔记 day12 作业讲解--员工信息表
    PAT L3-020 至多删三个字符
    2019省赛训练组队赛3.26周二---FJUT 2016
    PAT L3-007 天梯地图
    POJ 2234 Matches Game
  • 原文地址:https://www.cnblogs.com/tianshidechibang234/p/3441184.html
Copyright © 2011-2022 走看看