使用 ExifInterface 遇到的兼容性问题

为了获取图片的旋转角度,使用了如下 api

java 复制代码
import android.media.ExifInterface;

ExifInterface exif = new ExifInterface(filePath);
int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);

发现在三星的一些机型上,获取的ori都是 0,于是打算换一个 ExifInterface 的构造方法,但是发现这些构造方法,除了 String 的,API 版本都比较高,但是我们必须支持更低的版本。

这说明这个库肯定有一些兼容性问题,发现了一个警告。

java 复制代码
Avoid using android.media.ExifInterface; use androidx.exifinterface.media.ExifInterface instead

切换到androidx.exifinterface.media.ExifInterface 就可以了,在搜索问题的过程中,也发现了一些其他解决方案,那就是直接读取图片文件里面的信息。代码比较完整的是这个 Exif.java,于是我拿来试了一下,发现也是可以正确获取图片的旋转信息的。

相关推荐
JavaNoober7 小时前
Android 前台服务 "Bad Notification" 崩溃机制分析文档
android
城东米粉儿8 小时前
关于ObjectAnimator
android
zhangphil9 小时前
Android渲染线程Render Thread的RenderNode与DisplayList,引用Bitmap及Open GL纹理上传GPU
android
火柴就是我10 小时前
从头写一个自己的app
android·前端·flutter
lichong95111 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端
用户693717500138411 小时前
14.Kotlin 类:类的形态(一):抽象类 (Abstract Class)
android·后端·kotlin
火柴就是我11 小时前
NekoBoxForAndroid 编译libcore.aar
android
Kaede613 小时前
MySQL中如何使用命令行修改root密码
android·mysql·adb
明君8799714 小时前
Flutter 图纸标注功能的实现:踩坑与架构设计
android·ios
成都大菠萝14 小时前
Android Auto开发(3)-Audio Integration
android