因为在现在0.50包括之前的ReactNative版本,Image组件必须要设置宽高才能显示。所以在图片宽高不确定的情况下,如何来让图片自适应
屏幕高度呢?

需求原因:因为做商城详情页面的图片长短不一,所以要自适应图片显示高度。这个需求就产生了。

以下方法:

getSize方法 传入imageUri(图片的uri路径,支持本地和网络路径)

  1. Image.getSize(imageUri,(width,height) => {
  2. //width 图片的宽度
  3. //height 图片的高度
  4. }
返回的是图片的宽高。之后根据自己手机屏幕自己计算图片的
宽度高度

算法:

1.首先获取手机屏幕宽高

  1. let screenWidth = Dimensions.get('window').width;
  2. let screenHeight = Dimensions.get('window').height;

2.获取网络图片宽高

  1. Image.getSize(imageUri,(width,height) => {
  2. //width 图片的宽度
  3. //height 图片的高度
  4. }

3.

算法一:

图片宽度(÷)手机屏幕宽度 = 图片和手机宽度之比。

图片高度(÷)  图片和手机宽度之比 = 图片应在手机上显示的高度。

注:如果图片宽度小于手机屏幕,有极大可能会让图片失真,这样的话应当增加判断(请自行编码)。

算法二:

宽度是要适配全屏的,所以要设置图片的大小,宽度就等于手机屏幕宽度,那么高度

显示高度 = Math.floor( 屏幕宽度(÷)(图片的宽 * 图片的高));

  1. //方法一代码:
  2. Image.getSize(imageUri,(width,height) => {
  3. //width 图片的宽度 Math.floor向下取整
  4. //height 图片的高度
  5. let proportion = width/screenWidth;
  6. let myHeight = height/screenHeight;
  7. }
  1. //方法二代码:
  2. Image.getSize(imageUri,(width,height) => {
  3. //width 图片的宽度
  4. //height 图片的高度
  5. let myHeight = Math.floor(screenWidth/width*height);4 /2 * 1 = 2
  6. }

注:防止小数点后出现过多小数位数,这里特别用Math.floor进行js小数返回向下取整的整数。

向下取整:

Math.floor(XXX)

XXX = 1.8

Math.floor(XXX)的值就是1

XXX = 1.2

Math.floor(XXX)的值就是1

至此,把图片Image组件的宽高设置成自定义的宽高就ok了。

### // 获取自适应高度
### const height = 屏幕的宽度 * 图片的高度 / 图片的宽度
###  //                         4 * 1  / 2  = 2

ReactNative之Image组件自适应高度,图片自适应大小相关推荐

  1. css 图片自适应_img图片自适应object-fit

    当图片比例不固定,需要自适应显示图片时,可以使用img属性:object-fit object-fit有如下属性值: object-fit: fill; object-fit: contain; ob ...

  2. php iframe 自适应高度,iframe自适应高度

    很多小伙伴在做网站的时候对于解决iframe的高度问题都是很头大的一件事,今天吾爱编程为大家介绍一下iframe自适应高度的方法,有需要的小伙伴可以参考一下: 1.需求分析: 使页面中的iframe可 ...

  3. php自适应高度,iframe 自适应高度

    各位大侠,如何让iframe自适应内容的高度呢?我搜了网上好多方案,但没有一个管用的.怎么办?谁有好主意? 我的例子很简单,一个空白的页面,引用搜狐的主页,怎么框架自适应高度? frameborder ...

  4. VB6.0让图片自适应Picture图片框大小

      Picture的AutoSize属性设为True的话可以让图片框自动适应图片大小,但是图片不能适应图片框大小:   Image的Stretch属性设为True的话可以让图片自动适应图像框大小.   ...

  5. vue页面自适应屏幕宽高_vue组件页面高度根据屏幕大小自适应

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  6. Jquery图片自适应

    这里写自定义目录标题 Jquery图片自适应 Jquery图片自适应 点击图片的缩放效果 1.给图片添加自定义属性(获取原始的高度和宽度,方便接下来的使用) $(标签).attr('原始宽',this ...

  7. 弹性盒子布局宽度自适应-图片自适应

    flex布局,宽度自适应.图片自适应: 实现效果如下: css代码: 通过弹性盒子flex进行布局: html代码: 遍历生成DOM元素:

  8. Unity基础:文本框、图片自适应(ContentSizeFitter、VerticalLayoutGroup等组件的使用)

    1.Unity UGUI背景图片自适应文字大小_PalmAdorableTiger的博客-CSDN博客 2. Vertical Layout Group/Horizontal Layout Group ...

  9. 关于小程序widthFix图片高度不能自适应的问题

    微信小程序 Image 图片实现宽度100%或设置成某个rpx的值例如520rpx,高度自适应要如何设置呢? 一般做法如下: 样式设置宽度100%, .img{width: 100%; } 在图片组件 ...

最新文章

  1. 【超越EfficientNet】无需注意力,Transformer结合视觉任务实现新SOTA
  2. 线程通信问题--生产者和消费者问题
  3. Cloudify — 系统架构
  4. topcoder srm 495 div1
  5. 操作多个表_6_生成笛卡尔积
  6. 深度报文检测 linux,DPI-深度报文检测
  7. python 读写 json文件
  8. SpringBoot----日志框架和配置,熬夜整理Java面试笔试题
  9. C编程语言中整型变量在内存中的存储形式介绍
  10. 灵活的javaScript
  11. 高性能迷你React框架anujs1.0.8发布
  12. 【Azure Services Platform Step by Step-第7篇】别把Windows Azure当虚拟主机使——理解Windows Azure服务架构...
  13. (PC+WAP)高等院校学院职业学校类网站源码 政府单位机构协会Pbootcms网站模板
  14. pchunter驱动加载失败_电脑开机显示自动修复失败无法进入系统,解决方法
  15. linux怎么下载ftp文件夹,命令行 - 如何在Linux上通过FTP递归下载文件夹
  16. MySQL数据表字段繁体转简体
  17. html 广告弹窗代码,广告弹窗.html
  18. Android 视频播放 界面变形处理
  19. 卖主机的建辉互联张磊道貌岸然骗子公司(www.zzidc.top)
  20. XSS(跨站脚本攻击)理论知识

热门文章

  1. 计算机基础知识 - 比特、字节、KB、MB、...之间的关系
  2. UE4控制台怎么使用
  3. Python-循环练习题小汇总
  4. 数据库原理之关系数据库关系运算
  5. OpenStack详解(T版)
  6. 第1章 分布式系统概述
  7. 巅峰之战,2021年中国移动创客马拉松大赛移动云专题赛决赛落幕!
  8. java 时间转换字符串_java时间转换字符串万能操作工具类,让你轻松转换
  9. jacob转换office文件
  10. mysql结束事务语句_事务通常以什么语句结束