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

Android ImageView的Bitmap在scaleType情况下Bitmap顶部与底部RectF坐标,Kotlin

Android ImageView的Bitmap在scaleType情况下,Bitmap顶部与底部RectF坐标,Kotlin

 

 

通常,在ImageView设置scaleType后,Android会把原始图片通过缩放放在ImageView里面,例如:

    <ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="match_parent"android:adjustViewBounds="true"android:scaleType="fitCenter"android:src="@mipmap/p2" />

 

显示的结果:

c5363682697c47c7a63c1238f55a59ea.png

ImageView的高度这里特意设置:

android:layout_height="match_parent"

撑满ImageView的高度,但ImageView里面展示的Bitmap宽度铺满了屏幕宽度,但Bitmap的高度和ImageView是不同的,顶部和底部有空隙。因为缩放的模式是:

        android:scaleType="fitCenter"

此时,如果想要获得ImageView里面通过scaleType已经缩放的Bitmap的top值或其他bottom是多少,则:

    private fun getImageBounds(imageView: ImageView): RectF {val bounds = RectF()val drawable = imageView.drawableif (drawable != null) {imageView.imageMatrix.mapRect(bounds, RectF(drawable.bounds))}return bounds}

返回的RectF的top即ImageView里面的缩放后的Bitmap顶部距离ImageView顶部的值。

 

因为ImageView设置了高度为match_parent,且scaleType为fitCenter,导致里面的Bitmap顶部距离ImageView顶部有间隙。如果想消除这种间隙,也很简单,直接修改xml,把ImageView的高度从match_parent改为wrap_content:

    <ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="wrap_content"android:adjustViewBounds="true"android:scaleType="fitCenter"android:src="@mipmap/p2" />

此时,ImageView里面的Bitmap移动最顶部,和ImageView的顶部一致了。

90d18bc547894ef4b10b946e45a39a6e.png

这样简单的处理,可以在有些场景下简化ImageView与ImageView里面的Bitmap宽高坐标位置计算。

 

 

 

 

Android把宽高均小于给定值的Bitmap放大到给定值,Kotlin-CSDN博客文章浏览阅读392次,点赞8次,收藏11次。文章浏览阅读5.3k次。《Android大图片之变换缩略图,以及对原始大图片按照指定宽、高裁剪成缩略图》在Android的ImageView加载图像资源过程中,出于性能和内存开销的需要,有时候需要把一个原始的超大图片按照一定比例等比例缩放成较小的缩略图,或者需要把原始的超大图片,裁剪成指定宽高值的较小图片,针对这种开发需求,可以使用Android SDK自身提供的工具类:ThumbnailUtils完成。假设拉伸放大到SIZE=2048。https://blog.csdn.net/zhangphil/article/details/134737075

Android通过scaleType裁剪缩放图片适配不同屏幕不同ImageView尺寸-CSDN博客文章浏览阅读6.1k次。Android通过scaleType裁剪缩放图片适配不同屏幕不同ImageView尺寸实验方法,先找一张不规则大图,尺寸:1024pix(宽) X 1465pix(高),原图如图:然后特意设置一个ImageView宽高均为600pix。观察不同scaleType配置下,Android对原图的裁剪缩放效果。左侧为代码,右侧为缩放和裁剪效果。(1)android:scaleType="fitXY"可...https://blog.csdn.net/zhangphil/article/details/80858726

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vite+Vue3学习笔记(2)——语法、渲染、事件、数据传递、生命周期、第三方库、前端部署
  • Python使用PyMySql增删改查Mysql数据库
  • shell 切片参数解释
  • BUUCTF Reverse/[2019红帽杯]Snake
  • 手拉手后端Springboot整合JWT
  • 开源可观测性平台Signoz(四)【链路监控及数据库中间件监控篇】
  • 2024年原创深度学习算法项目分享
  • HTML进阶
  • WPF 新手指引弹窗
  • Spring通信传参的方法
  • AI人工智能大模型讲师叶梓《基于人工智能的内容生成(AIGC)理论与实践》培训提纲
  • OpenCV-Python(22):2D直方图
  • TensorFlow Hub模型
  • 拓展操作(三) jenkins迁移到另一个机器
  • 关键字:try-catch关键字
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Cookie 在前端中的实践
  • echarts的各种常用效果展示
  • JavaScript实现分页效果
  • React-redux的原理以及使用
  • sublime配置文件
  • vue-loader 源码解析系列之 selector
  • 包装类对象
  • 闭包--闭包作用之保存(一)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 蓝海存储开关机注意事项总结
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 推荐一个React的管理后台框架
  • 微信公众号开发小记——5.python微信红包
  • 我是如何设计 Upload 上传组件的
  • 小试R空间处理新库sf
  • 一个项目push到多个远程Git仓库
  •  一套莫尔斯电报听写、翻译系统
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 云大使推广中的常见热门问题
  • 正则与JS中的正则
  • mysql面试题分组并合并列
  • zabbix3.2监控linux磁盘IO
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1)Nginx简介和安装教程
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (4)STL算法之比较
  • (web自动化测试+python)1
  • (三分钟)速览传统边缘检测算子
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (四)进入MySQL 【事务】
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • ./configure,make,make install的作用(转)
  • .Net MVC + EF搭建学生管理系统
  • .NET应用架构设计:原则、模式与实践 目录预览
  • ?
  • @html.ActionLink的几种参数格式