Android工具类ImgUtil选择相机和系统相册

yizhihongxing

我可以为你讲解如何使用Android工具类ImgUtil选择相机和系统相册。

一、 ImgUtil简介

ImgUtil是一个简单易用的Android图片选择和压缩库,旨在简化Android开发过程中图片选择和压缩的常见问题。它提供了简单的接口来选择并操作图片,支持多图片选择、图片压缩和图片选取的来源(相机、相册等)等功能,以便更快速地完成开发。

二、使用ImgUtil选择相机和系统相册

ImgUtil提供了一个方法来选择照片,你可以使用以下代码来实现:

ImgUtil.with(this)
       .chooseFromGallery()
       .setCropAspectRatioOptions(1, 1)
       .setCompressionEnabled(true)
       .setCompressFormat(Bitmap.CompressFormat.JPEG)
       .setCompressQuality(50)
       .setCropEnabled(true)
       .start(REQUEST_CODE_GALLERY);

这里,我们首先创建了ImgUtil实例,然后使用chooseFromGallery()方法选择系统相册,设置了压缩、裁剪、输出格式、输出质量等一些图片属性,并通过start(REQUEST_CODE_GALLERY)方法来启动图片选择器请求。

同时,ImgUtil还提供了chooseFromCamera()方法来选择拍照选项,使用方式如下:

ImgUtil.with(this)
       .chooseFromCamera()
       .setCropAspectRatioOptions(1, 1)
       .setCompressionEnabled(true)
       .setCompressFormat(Bitmap.CompressFormat.JPEG)
       .setCompressQuality(50)
       .start(REQUEST_CODE_CAMERA);

这里,我们使用chooseFromCamera()方法选择相机选项,并设置了压缩、裁剪、输出格式、输出质量等一些图片属性,并通过start(REQUEST_CODE_CAMERA)方法来启动拍照请求。

三、示例说明

1、使用ImgUtil选择相机和系统相册

public class MainActivity extends AppCompatActivity {

    private ImageView mImageView;

    private static final int REQUEST_CODE_CAMERA = 1001;
    private static final int REQUEST_CODE_GALLERY = 1002;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mImageView = findViewById(R.id.imageView);

        findViewById(R.id.btn_camera).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImgUtil.with(MainActivity.this)
                        .chooseFromCamera()
                        .setCropAspectRatioOptions(1, 1)
                        .setCompressionEnabled(true)
                        .setCompressFormat(Bitmap.CompressFormat.JPEG)
                        .setCompressQuality(50)
                        .start(REQUEST_CODE_CAMERA);
            }
        });

        findViewById(R.id.btn_gallery).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImgUtil.with(MainActivity.this)
                        .chooseFromGallery()
                        .setCropAspectRatioOptions(1, 1)
                        .setCompressionEnabled(true)
                        .setCompressFormat(Bitmap.CompressFormat.JPEG)
                        .setCompressQuality(50)
                        .start(REQUEST_CODE_GALLERY);
            }
        });
    }

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

        if (resultCode == Activity.RESULT_OK) {
            if (requestCode == REQUEST_CODE_CAMERA || requestCode == REQUEST_CODE_GALLERY) {
                List<String> imagePathList = ImgUtil.getResults(data);

                if (!imagePathList.isEmpty()) {
                    Glide.with(MainActivity.this).load(imagePathList.get(0)).into(mImageView);
                }
            }
        }
    }
}

这里我们在MainActivity中,分别给相机和系统相册选择器按钮设置点击事件,实现调用ImgUtil选择相机和系统相册。同时,我们还实现了onActivityResult获取到选择器返回的图片列表,并将其中的一张显示在ImageView控件上。

2、使用ImgUtil选择带有多图片选择的相册

ImgUtil.with(this)
       .chooseFromGallery()
       .setMaximumDisplayingImages(10)
       .setMaximumSelectedImages(5)
       .setCompressionEnabled(true)
       .setCompressFormat(Bitmap.CompressFormat.JPEG)
       .setCompressQuality(50)
       .start(REQUEST_CODE_MULTIPLE_IMAGES);

这里,我们在选择相册时使用了setMaximumDisplayingImages(10)方法限制最多显示10张图片,并使用了setMaximumSelectedImages(5)方法限制最多选择5张图片。

以上就是使用ImgUtil选择相机和系统相册的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android工具类ImgUtil选择相机和系统相册 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • C/C++题解LeetCode1295统计位数为偶数的数字

    下面是详细讲解“C/C++题解LeetCode1295统计位数为偶数的数字”的完整攻略。 题目描述 给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。 示例 1: 输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数)  2 是 1 位数字(位数为奇数) …

    人工智能概论 2023年5月25日
    00
  • TensorFlow获取加载模型中的全部张量名称代码

    获取加载模型中的全部张量名称是TensorFlow常见的操作之一,下面是我为你整理的一份详细攻略: 1. 直接使用tf.GraphKeys TensorFlow提供了tf.GraphKeys集合来组织模型中的各种张量名称,使用tf.get_collection()函数即可获取集合中的所有张量名称。代码如下: import tensorflow as tf #…

    人工智能概论 2023年5月25日
    00
  • python图像处理之镜像实现方法

    Python图像处理之镜像实现方法 在Python中,可以使用PIL库(Python Image Library)来进行图像处理,其中包含多种函数和方法,用于获取、处理、合成和保存图像。本次攻略将详细讲解如何使用PIL库来实现图像镜像的处理方法。 准备工作 在开始图像处理前,需要安装PIL库。可以使用pip进行安装: pip install pillow 在…

    人工智能概论 2023年5月25日
    00
  • nginx+tomcat实现Windows系统下的负载均衡搭建教程

    下面是“nginx+tomcat实现Windows系统下的负载均衡搭建教程”的完整攻略: 1. 环境准备 1.1 安装Java环境 首先需要安装Java环境,这里以JDK 8为例。建议在官网下载对应系统的JDK安装包,然后安装即可。 1.2 安装Tomcat Tomcat是一个开源的Web应用服务器,也是一个Servlet容器。可以通过以下步骤进行安装: 下…

    人工智能概览 2023年5月25日
    00
  • SpringBoot之RabbitMQ的使用方法

    下面我为您提供 “SpringBoot之RabbitMQ的使用方法”的完整攻略。 前置条件 在开始学习SpringBoot之RabbitMQ的使用方法之前,我们需要先了解以下几个概念: RabbitMQ:开源的消息队列系统,它可以作为消息中间件在分布式系统中传递消息,它实现了高可用、高性能以及可扩展性。 AMQP(高级消息队列协议):消息协议,用于定义异构系…

    人工智能概览 2023年5月25日
    00
  • Python脚本制作天气查询实例代码

    想要制作一款能够查询天气的Python脚本,我们可以从以下步骤入手: 步骤一:获取天气API 要想制作能够查询天气的Python脚本,我们需要先获取一个天气API。目前市面上的天气API有很多种,比如心知天气、和风天气等。这里我们以心知天气为例,具体操作步骤如下: 进入心知天气官网(https://www.seniverse.com/ ),注册并登录账号。 …

    人工智能概论 2023年5月24日
    00
  • 从荣耀7看 有点不同 的荣耀品牌

    从荣耀7看 有点不同 的荣耀品牌攻略 荣耀品牌作为华为旗下的手机品牌,近年来备受关注。让我们以荣耀7为例,看一下荣耀品牌与其他手机品牌有哪些不同。 硬件配置的高性价比 荣耀7的硬件配置虽然不如当今的旗舰机型,但在当时的市场上,无疑是性价比最高的一款手机。它搭载了华为自主研发的麒麟925芯片,配备了3GB的大内存以及32GB的存储空间。相比当时的市场主流机型,…

    人工智能概览 2023年5月25日
    00
  • 微信小程序使用百度AI识别接口的通用封装Promise详解

    微信小程序使用百度AI识别接口的通用封装Promise详解 1. 简介 本教程是针对微信小程序开发者,讲解如何使用百度AI识别接口,并提供了通用封装Promise,方便使用。 2. 百度AI识别接口介绍 2.1 接口列表 以下是百度AI提供的识别接口: 通用文字识别 通用文字识别(高精度版) 身份证识别 银行卡识别 驾驶证识别 行驶证识别 车牌识别 人脸检测…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部