Android ExifInterface rotationDegrees图旋转角度,Kotlin

Android ExifInterface rotationDegrees图旋转角度,Kotlin

Kotlin 复制代码
import android.media.ThumbnailUtils
import android.os.Bundle
import android.util.Log
import android.util.Size
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.exifinterface.media.ExifInterface
import java.io.File

class MainActivity : AppCompatActivity() {
    companion object {
        const val TAG = "fly/MainActivity"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val img1 = findViewById<ImageView>(R.id.img1)
        val img2 = findViewById<ImageView>(R.id.img2)

        val filePath = "/storage/emulated/0/data/heic/IMG_1587.HEIC"

        var t = System.currentTimeMillis()
        val bmp1 = ThumbnailUtils.createImageThumbnail(File(filePath), Size(200, 200), null)
        Log.d(TAG, "decodeFile 耗时=${System.currentTimeMillis() - t}ms")

        img1.setImageBitmap(bmp1)

        img2.setImageBitmap(bmp1)

        t = System.currentTimeMillis()
        val exifInterface = ExifInterface(filePath)
        Log.d(TAG, "rotationDegrees=${exifInterface.rotationDegrees} 耗时=${System.currentTimeMillis() - t}ms")

        val degree = exifInterface.rotationDegrees * (-1f)
        if (degree != 0f) {
            img2.rotation = degree
        }
    }
}

注意:

复制代码
val exifInterface = ExifInterface(filePath)

最终是要FileInputStream读文件,这是一个耗时IO,通常需要几十ms以上,有一定性能开销。

Android多张图片rotation旋转角度叠加/重叠堆放_android 图片无规则叠放-CSDN博客文章浏览阅读810次。《Android大图片之变换缩略图,以及对原始大图片按照指定宽、高裁剪成缩略图》在Android的ImageView加载图像资源过程中,出于性能和内存开销的需要,有时候需要把一个原始的超大图片按照一定比例等比例缩放成较小的缩略图,或者需要把原始的超大图片,裁剪成指定宽高值的较小图片,针对这种开发需求,可以使用Android SDK自身提供的工具类:ThumbnailUtils完成。Android旋转动画rotate动画,xml配置set实现_android xml 旋转动画-CSDN博客。_android 图片无规则叠放https://blog.csdn.net/zhangphil/article/details/134065191

Android ValueAnimator ImageView animate() rotation,Kotlin-CSDN博客文章浏览阅读788次,点赞7次,收藏4次。Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin。_view动画 渐变。Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin_view动画 渐变-CSDN博客。https://blog.csdn.net/zhangphil/article/details/145289647

相关推荐
mmsx40 分钟前
Android 并发考古:newThread 与 RxJava 共存,以及 GlobalScope 的三宗罪
android·echarts·rxjava
骑着蜗牛撵大象32743 分钟前
大模型 SDK 编译就崩?用 CMakeLists 把 httplib、JSON 与 OpenSSL 装配成可复用的 ChatServer
android·java·c++·http·json·cmake·大模型sdk
海水冷却10 小时前
Android 群组聊天怎么实现:基于 ZIM 的完整落地指南(附可运行 Demo)
android
三少爷的鞋13 小时前
现代 Android 架构指南:不要再主动设计 Callback 接口
android
TimeFine18 小时前
AI 编码工作流的设计
android·ai编程
骑着蜗牛撵大象32719 小时前
C++20 协程 × 屏障:手写一个 co_await 版 Barrier,让等待不再钉死线程
android·c++20·协程·并发编程·co_await·屏障同步
山东孙燕姿21 小时前
设备台账重构:从一张表到三层模型
android·java·网络·低代码·重构·rxjava
蒸鱼Yuzheng1 天前
移动端 CPU 调度分析:线程亲和性、大小核迁移与卡顿
android·perfetto·性能分析·线程优化·cpu调度
booboosui1 天前
安卓唤醒词:12 维 MFCC 加 DTW,阈值 1.8
android
传奇开心果1 天前
Compose Multiplatform 共享边界实战:架构契约、互操作同步与可回退设计
android·kotlin