Code Monkey home page Code Monkey logo

imagefileselector's Introduction

ImageFileSelector

轻量级的选取图片和裁切图片的库,使用系统自带的软件实现。

Build Status Get it on Google Play

#####支持Android版本:Android 2.2+

使用方法

Maven

<dependency>
    <groupId>com.sw926.imagefileselector</groupId>
    <artifactId>library</artifactId>
    <version>1.0.3</version>
</dependency>

Gradle

compile 'com.sw926.imagefileselector:library:1.0.3'

选取图片

初始化

ImageFileSelector mImageFileSelector = new ImageFileSelector(this);
mImageFileSelector.setCallback(new ImageFileSelector.Callback() {
    @Override
    public void onSuccess(final String file) {
        // 选取图片成功
    }

    @Override
    public void onError() {
        // 选取图片失败
    }
});

在Activity中,加入以下代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mImageFileSelector.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mImageFileSelector.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    mImageFileSelector.onRestoreInstanceState(savedInstanceState);
}

// Android 6.0的动态权限
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    mImageFileSelector.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

设置参数

// 设置输出文件的尺寸
mImageFileSelector.setOutPutImageSize(800, 600);
// 设置保存图片的质量 0到100
mImageFileSelector.setQuality(80);

现在开始选取图片

// 拍照选取
mImageFileSelector.takePhoto(this);
// 从文件选取
mImageFileSelector.selectImage(this);

所有选取的图片都在

/sdcard/Android/data/{packagename}/cache/image/image_selector

使用完记得删除

裁切图片

初始化

ImageCropper mImageCropper = new ImageCropper(this);
mImageCropper.setCallback(new ImageCropper.ImageCropperCallback() {
    @Override
    public void onCropperCallback(ImageCropper.CropperResult result, File srcFile, File outFile) {
        if (result == ImageCropper.CropperResult.success) {
            // 成功
        } else if (result == ImageCropper.CropperResult.error_illegal_input_file) {
            // 输入的文件失败
        } else if (result == ImageCropper.CropperResult.error_illegal_out_file) {
            // 输出文件失败
        }
    }
});

在Activit或Fragment中加入以下代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mImageCropper.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mImageCropper.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    mImageCropper.onRestoreInstanceState(savedInstanceState);
}

设置参数

// 设置输出文件的宽高比
mImageCropper.setOutPutAspect(1, 1);
// 设置输出文件的尺寸
mImageCropper.setOutPut(800, 800);
// 设置是否缩放到指定的尺寸
mImageCropper.setScale(true);

裁切图片

mImageCropper.cropImage(file);

imagefileselector's People

Contributors

sw926 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.