美文网首页
Android读取图片(通过拍照或者相册导入图片)

Android读取图片(通过拍照或者相册导入图片)

作者: buhuiming | 来源:发表于2018-06-01 14:42 被阅读0次

    BHMAndroid工程:一些常用的工具类,以及常用的控件,主要用来提高开发效率。(GitHub


    集成:

        compile 'com.bhm.sdk.bhmlibrary:BHMLibrary:version' (version不定时更新)
    
        <dependency>
          <groupId>com.bhm.sdk.bhmlibrary</groupId>
          <artifactId>BHMLibrary</artifactId>
          <version>version</version>
          <type>pom</type>
        </dependency>
    
    

    目前库包含了一些项目中常用的模块,后续会慢慢的添加完善。

    3.jpg 4.jpg

    使用步骤


    1、Activity或Fragment中声名全局变量

        private CameraGalleryGetPic getPic;
    
    

    2、初始化CameraGalleryGetPic

        String path = Environment.getExternalStorageDirectory().getAbsolutePath()
              + File.separator + "RxLibrary" + "/";
    
        getPic = CameraGalleryGetPic.newBuilder(activity)
                        .setPicPath(path)//自定义图片保存的临时地址,默认地址..CGGetPic文件夹
                        .isCrop(true)//是否剪切图片,默认为false
                        .setScale(320, 320)//设置图片剪切的宽高,isCrop(true)有效,默认300,300
                        .setFormat(CameraGalleryGetPic.FORMAT_PNG),设置图片的格式,默认jpeg
                        .build();
    
    

    3、调用

        getPic.cameraGetPic(getPictureCall());//调用相机
    
        getPic.galleryGetPic(getPictureCall());//调用图库
    
    
        private PictureCall getPictureCall(){
            return new PictureCall() {
                @Override
                public void result(String path) {
                    Bitmap bitmap = BitmapFactory.decodeFile(path);
                    if(null != bitmap){
                        imageView.setImageBitmap(bitmap);
                    }
                }
            };
        }
    
    

    4、在AndroidManiFest中添加权限(不需要动态申请权限,在调用相机/图库已经有处理)

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.CAMERA"/>
    
    

    5、在AndroidManiFest文件的application节点下添加:

        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.bhm.sdk.demo.fileprovider"//这里是:包名+.fileprovider
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />
        </provider>
    
        <meta-data
            android:name="authorities"
            android:value="com.bhm.sdk.demo.fileprovider" />//这里是:包名+.fileprovider,一定与provider的authorities一样
    

    tip: 工程已兼容7.0系统的FileProvider,请放心使用。


    相关文章

      网友评论

          本文标题:Android读取图片(通过拍照或者相册导入图片)

          本文链接:https://www.haomeiwen.com/subject/ckqksftx.html