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

我可以为你讲解如何使用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日

相关文章

  • Python使用mongodb保存爬取豆瓣电影的数据过程解析

    下面是Python使用MongoDB保存爬取豆瓣电影数据的完整攻略。 1. 安装MongoDB 在开始之前,需要先安装MongoDB数据库,具体步骤可参考MongoDB官方文档:https://docs.mongodb.com/manual/administration/install-community/ 2. 安装Python库 接下来需要安装Pytho…

    人工智能概论 2023年5月25日
    00
  • 易语言中嵌入html直接显示方法

    下面是关于“易语言中嵌入HTML直接显示方法”的完整攻略。 1、前置知识 在嵌入HTML之前,需要了解几个前置知识: 1.1 UTF-8编码 HTML文件的编码一般为UTF-8编码,易语言中的字符串也是采用UTF-8编码方式存储的,所以需要了解UTF-8编码的相关知识。 1.2 HTML基本语法知识 HTML语言是用来描述网页的一种标记语言,需要了解HTML…

    人工智能概论 2023年5月25日
    00
  • nginx信号集案例详解

    NGINX 信号集案例详解 什么是信号 在Linux系统下,信号是一种进程间通信机制,可以向指定进程发送一些指令。用于告诉进程发生了哪些事件,让进程按照回应动作来处理这些事件。 Linux系统下有很多种不同类型的信号,例如:* SIGINT(Ctrl+C):中断信号,告诉进程需要被中断退出(kill)。* SIGTERM:终止信号,可以用来优雅地终止服务(k…

    人工智能概览 2023年5月25日
    00
  • go语言入门环境搭建及GoLand安装教程详解

    Go语言入门环境搭建及GoLand安装教程详解 概述 Go语言是Google公司推出的一种新型编程语言,具有并发,高性能等特性,因此备受开发者青睐。本文将详细讲解如何搭建Go语言的开发环境和安装GoLand等开发工具。 步骤一:安装Go语言环境 下载Go语言环境安装包 在官网(https://golang.org/dl/)下载对应操作系统的安装包,推荐下载稳…

    人工智能概论 2023年5月25日
    00
  • 如何利用Python开发一个简单的猜数字游戏

    下面是如何利用Python开发一个简单的猜数字游戏的完整攻略: 1. 确定游戏规则和要实现的功能 猜数字游戏最基本的规则是:程序随机选取一个数字,玩家通过猜测数字来判断这个数字是多少,并给予相应的提示。通过这样的游戏规则,可以确定我们需要实现以下功能: 随机生成一个数字; 显示玩家当前猜测数字的输入框; 提示玩家是否猜对了数字; 记录玩家的猜测次数; 可以让…

    人工智能概论 2023年5月25日
    00
  • docker中的volume和bind mount区别讲解

    下面是关于“docker中的volume和bind mount区别讲解”的完整攻略。 什么是 Volume? Volume 是 Docker 中一个独立于容器的数据管理方式,可以让我们在容器和主机之间有效分享数据。在使用 Volume 时,我们可以将数据存储在 Docker 主机或者其他远程数据存储系统上。相较于 Bind Mount,Volume 具有以下…

    人工智能概览 2023年5月25日
    00
  • python3连接kafka模块pykafka生产者简单封装代码

    下面我就详细讲解一下“python3连接kafka模块pykafka生产者简单封装代码”的完整攻略。 一、pykafka介绍 pykafka是Python的Kafka连接库之一,它提供了对Kafka的高级别操作接口,同时也支持异步生产和消费消息。 二、使用pykafka连接Kafka服务 我们使用pykafka连接Kafka服务,需要先安装并导入模块。在命令…

    人工智能概论 2023年5月25日
    00
  • 华硕灵耀Pro16 2022值得入手吗 华硕灵耀Pro16 2022深度评测

    华硕灵耀Pro16深度评测 华硕灵耀Pro16是一款全新推出的高性能笔记本电脑,是华硕灵耀系列产品的升级版。那么,这款电脑值得入手吗?下面将从外观、配置、性能、续航、价格等多个方面进行分析。 外观设计 华硕灵耀Pro16采用了几何切割风格,通体采用金属材质,并多次经过喷砂、磨砂等多道工艺加工,透出档次感。配备了16.0英寸的全高清屏幕,可以完美的呈现高清画面…

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