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

2018-06-01  本文已影响0人  buhuiming

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,请放心使用。


上一篇下一篇

猜你喜欢

热点阅读