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以上,有一定性能开销。