混合开发的大趋势之一React Native之Image (脑动理解)
文章是宝宝自己写的,你可以转走,标明哪来的就行王亟亟的大牛之路
国庆这些天要么旅游要么WOW,感觉整个人都废了。。
直接从黄种人晒成了非洲大酋长。。然而还是无橙,这礼拜要做7天,昨天把单元测试的东西整完后今天下午抽出时间继续学习,然后就补一篇RN 主件的文章,知识点源于官方文档
原文地址:https://github.com/facebook/react-native/blob/master/docs/Images.md
效果图
第一种为:加载RN项目下的图片
第二种为:加载网络图片
第三种为:加载Android项目的图片资源+图片作为背景
加载RN项目下的图片
如果你需要引用RN项目目录下的图片资源,就像使用html中的引用一样,使用相对路径去找
目录如下
在我们的android.js同级有一个img文件夹,里面有一个sample.jpg文件,而它就是我们所需要的
<Image source = {require('./img/sample.jpg')}/>
这样就可以使用到我们的图片了给 source属性利用require()给其传第一个图片地址,然后就可以渲染到<Image/>上
当然有时候你的值是可变的,那也可以传入一个对象去引用,如
var icon = this.props.active ? 'sample' : 'sample1';
<Image source={require('./' + icon + '.png')} />
但是以上写法不是很好,我们尽量在渲染的时候给出正确的引用值,可以这样:
var icon = this.props.active ? require('./sample.png') : require('./sample1.png');
<Image source={icon} />
一般来说我们的图片资源本身大小不可控,所以我们会给控件预设一个尺寸,像这样
<Image source = {require('./img/sample.jpg')} style = {{ width : 230, height : 300}}/>
加载网络图片
我们的APP不可能是一个纯离线产品,那网络图片就是必不可少,RN加载图片就比远程环境方便,给出正确的UR,就和网页加载图片一样
<Image source = {{uri : '图片地址'}} style = {{ width : 230 , height : 220}}/>
还是和家在本地图片一样,官方希望大家给定控件的尺寸。
因为你的图片尺寸不可控,当加载出来后把用户第一次看到的布局给整变形了,这是一个很不好的用户体验。
Note:这里补充下 我们的uri 属性 是 object 类型的。
加载Android项目的图片资源
那既然可以加载RN项目里的图片,必然也可以加载android项目下的图片,加载方式大同小异
<Image style = {{ width : 230, height : 230}} source={require('image!timg')} />
唯一区别就是 在值里加一个 imge!文件名,不需要后缀哦!
图片作为背景
其实图片也可以作为一个父容器,也就是类似于背景的效果,使用非常简单,在<Image></Image> 中间加就行,像这样
<Image style = {{ width : 230, height : 230}} source={require('image!timg')} >
<Text>在里面</Text>
</Image>
源码地址:https://github.com/ddwhan0123/ReactNativeDemo/blob/master/ImageDemo.js
这礼拜7天,大家HOLD住
混合开发的大趋势之一React Native之Image (脑动理解)的更多相关文章
- 混合开发的大趋势之一React Native与Android联调
转载请注明出处:王亟亟的大牛之路 先安利,有空我都会更,看到的好东西都会放进来:https://github.com/ddwhan0123/Useful-Open-Source-Android 公司某 ...
- 混合开发的大趋势之一React Native之页面跳转
转载请注明出处:王亟亟的大牛之路 最近事情有点多,没有长时间地连贯学习,文章也停了一个多礼拜,愧疚,有时间还是继续学习,继续写! 还是先安利:https://github.com/ddwhan0123 ...
- 混合开发的大趋势之一React Native之简单的登录界面
转载请注明出处:王亟亟的大牛之路 这些天都在学习RN这部分吧,然后写了个简单的登陆业务,从"实战"中讲解吧 还是继续安利:https://github.com/ddwhan0123 ...
- 混合开发的大趋势之一React Native手势行为那些事
转载请注明出处:王亟亟的大牛之路 最近项目部分模块重构,事情有点多,学习进度有所延缓,外加一直在吸毒(wow你懂的),导致好多天没发问了,其实这部分知识月头就想写了,一直没补. 话不多说先安利:htt ...
- 混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码
转载请注明出处:这里写链接内容 今天是10月份的最后一天,我加了3个月来的第一个班,挤出了这篇. 废话不多先安利,然后继续学习 RN 有好东西都往里面丢,努力做好归纳 https://github.c ...
- 混合开发的大趋势之 一个Android程序员眼中的 React.js 块级作用域 和 let
转载请注明出处:王亟亟的大牛之路 最近都有事干然后,快到月底了这个月给CSDN的博文也就两篇,想想也蛮多天没更了,那就来一篇. 老规矩,先安利:https://github.com/ddwhan012 ...
- 混合开发的大趋势之 一个Android程序员眼中的 React.js 箭头函数,const, PropTypes
转载请注明出处:王亟亟的大牛之路 昨天写了篇React.js的开头之作,讲了讲块级作用域和let,先安利:https://github.com/ddwhan0123/Useful-Open-Sourc ...
- 移动开发发展方向-----Hybird混合开发3大方案
移动开发发展方向-----Hybird混合开发3大方案
- 浅谈移动应用的跨平台开发工具(Xamarin和React Native)
谈移动应用的跨平台开发不能不提HTML5,PhoneGap和Sencha等平台一直致力于使用HTML5技术来开发跨平台的移动应用,现在看来这个方向基本算是失败的,基于HTML5的移动应用在用户体验上与 ...
随机推荐
- Linux下android开发环境配置
1.安装jdk 1.到sun官网下载jdk(附jdk6下载地址),根据自己的ubuntu版本选择合适的jdk版本.如你用的是ubuntu 32位系统则选择下载jdk-6u41-linux-i586.b ...
- 【BZOJ1511】[POI2006]OKR-Periods of Words next数组
[BZOJ1511][POI2006]OKR-Periods of Words Description 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅 ...
- jpa单向一对多关联映射
如果在一的@OneToMany有@manyToOne则是双向一对多关联,如果在多的那面没有@manyToOne关联则是单向一对多关联 class和student是一对多的关系 表结构 student ...
- 微信公众号 待发货-物流中-已收货 foreach break continue
w <?php $warr = array(1,2,3); $w_break = 0; foreach($warr AS $w){ if($w==2)break; $w_break += $w; ...
- Java 语言基础之数组(一)
数组定义及格式: 数组: 同一种类型数据的集合, 就是一个容器 定义数组格式1: 元素类型[] 数组名 = new 元素类型[元素个数(即数组长度)]; 说明: 数组是一个容器.而容器属于一个实体,实 ...
- 关于oracle的sequence和trigger。
原先mysql中每个自增字段,在oracle中就需要建立一个sequence和一个trigger. 就算同一个表中有x个自增字段,那么就需要建立x个sequence和x和trigger. 实际中,我建 ...
- 创建使用pycharm virtualenv
创建使用pycharm virtualenv 在python的世界里,真该感谢有PyCharm,pip,virtualenv 这些好东东,为python程序员提供了极大的方便. virtualenv ...
- 报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Outline SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: trunc ...
- 迭代器模拟for循环
s = 'wgugq wgugfgfqwihqwohd' it = s.__iter__() # 生成一个迭代器 while 1: try: # 尝试 el = it.__next__() # 下一个 ...
- MySQL数据库(2)- 库的操作、表的操作、数据的操作、存储引擎的介绍
一.库的操作 1.系统数据库 执行如下命令,查看系统数据库: mysql> show databases; 参数解释: information_schema: 虚拟库,不占用磁盘空间,存储的是数 ...