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