图片选择与裁剪功能实现(Android)

移动开发里的图片功能,真的用得蛮频繁的。是像“选择图片—拍照—裁剪—显示”这一整套流程,做得顺滑点,用户体验能立马提升一个档次。Android 端其实可以比较轻松搞定这些,用Intent调用系统相册和相机,结合onActivityResult()返回的数据就行了,逻辑也挺直观的。

图片裁剪这块儿,如果你不想自己手写逻辑,那可以试试android-image-cropper这个库,用法简单,还能设置裁剪比例,挺省事。比如:

CropImage.activity(resultUri)
  .setAspectRatio(1, 1)
  .start(this);

裁剪完用ImageView展示就行,调用setImageURI()方便。顺带一提,iOS 上也有类似的工具,比如UIImagePickerControllerTOCropViewController,功能也挺全的。

注意一下权限问题哈,尤其在 Android 11+的系统上,访问相册和使用相机都需要动态申。还有图片压缩、异步加载啥的,也别忘了考虑,性能体验上会差不少。

如果你正在做移动端开发,想实现图片选择、拍照和裁剪这些功能,不妨直接上这些成熟方案,效率高还省坑。

rar
PhotoImage.rar 预估大小:53个文件
folder
PhotoImage 文件夹
file
.project 846B
file
project.properties 563B
folder
src 文件夹
folder
com 文件夹
folder
zhang 文件夹
folder
photoimage 文件夹
file
MainActivity.java 5KB
file
AndroidManifest.xml 882B
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
drawable-hdpi 文件夹
file
img.png 97KB
file
ic_launcher.png 7KB
file
title58.png 4KB
folder
values-v11 文件夹
file
styles.xml 334B
folder
menu 文件夹
file
main.xml 263B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
layout 文件夹
file
dialog.xml 980B
file
activity_main.xml 741B
folder
values-sw600dp 文件夹
file
dimens.xml 203B
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
values 文件夹
file
strings.xml 227B
file
styles.xml 697B
file
dimens.xml 220B
folder
values-sw720dp-land 文件夹
file
dimens.xml 277B
folder
values-v14 文件夹
file
styles.xml 391B
folder
.settings 文件夹
file
org.eclipse.jdt.core.prefs 177B
folder
assets 文件夹
folder
gen 文件夹
folder
com 文件夹
folder
zhang 文件夹
folder
photoimage 文件夹
file
BuildConfig.java 162B
file
R.java 3KB
folder
libs 文件夹
file
android-support-v4.jar 607KB
file
.classpath 475B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
bin 文件夹
file
resources.ap_ 139KB
folder
classes 文件夹
folder
com 文件夹
folder
zhang 文件夹
folder
photoimage 文件夹
file
R$layout.class 439B
file
R$style.class 437B
file
R$dimen.class 467B
file
BuildConfig.class 349B
file
R$drawable.class 471B
file
R$attr.class 346B
file
R$id.class 515B
file
MainActivity$2.class 947B
file
R.class 693B
file
R$string.class 478B
file
MainActivity$1.class 925B
file
MainActivity$3.class 946B
file
R$menu.class 394B
file
MainActivity.class 5KB
file
AndroidManifest.xml 882B
folder
dexedLibs 文件夹
file
android-support-v4-00829d166f91def28a2f1bb870330cb8.jar 227KB
file
jarlist.cache 120B
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-hdpi 文件夹
file
img.png 95KB
file
ic_launcher.png 6KB
file
title58.png 3KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 3KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 17KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 9KB
file
classes.dex 676KB
file
PhotoImage.apk 372KB
...
rar 文件大小:1.76MB