当前位置: 首页 > news >正文

Android ExifInterface rotationDegrees图旋转角度,Kotlin

Android ExifInterface rotationDegrees图旋转角度,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.Fileclass 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

 

http://www.dtcms.com/a/133979.html

相关文章:

  • 基于 PyTorch 的 LSTM 实现降雨量预测
  • 使用RUN pip install flask和RUN pip install -r requirements.txt
  • 【rdma通信名词概念】
  • 鸿蒙开发中,@Extend、@Styles 和 @Builder 的区别
  • 前端快速入门——JavaScript函数、DOM
  • Spring MVC 模型数据绑定:addAttribute 与 put 方法详解
  • 【区块链+ 人才服务】“CERX Network”——基于 FISCO BCOS 的研学资源交换网络 | FISCO BCOS 应用案例
  • ESLint常见错误
  • 使用CS Roofline Toolkit测量带宽
  • 一文读懂WPF系列之MVVM
  • 秒杀秒抢系统开发:飞算 JavaAI 工具如何应对高并发难题?
  • 大数据面试问答-Kafka/Flink
  • 【android bluetooth 案例分析 02】【CarLink 详解2】【Carlink无配对连接机制深度解析】
  • OpenAI发布GPT-4.1系列模型——开发者可免费使用
  • 正则表达式反向引用的综合应用魔法:从重复文本到简洁表达的蜕变
  • 前端VUE框架理论与应用(4)
  • Docker Swarm 集群使用指南概述
  • ARM Cortex-M中断处理全解析
  • 扫地机器人进化史:从人工智障到家政王者
  • Breeze 40A FOC 电调:Vfast 观测器技术赋能无人机精准动力控制
  • YOLOv3实践教程:使用预训练模型进行目标检测
  • C++每日训练 Day 15:构建线程池支持的事件中心 SignalHub
  • 计算机系统---烤机(性能测评)
  • 修改SpringBoot生成的jar文件后重新打包
  • 揭秘大数据 | 21、软件定义计算
  • 嵌入式WebRTC轻量化SDK压缩至500K-800K ,为嵌入式设备节省Flash资源
  • kali的wifi工具使用
  • 如何获取Google Chrome的官方最新下载链接【获取教程】
  • 【补题】The 2024 ICPC Kunming Invitational Contest I. Left Shifting 2
  • STM32