先來(lái)點(diǎn)實(shí)際的:
image組件加載圖片的7種方式:
image組件加載圖片主要通過(guò)source屬性來(lái)設(shè)置痕届,現(xiàn)在我們來(lái)看一下source的幾種寫(xiě)法:
(1)官方文檔本地圖片常規(guī)方式1:source={require(“一個(gè)RN項(xiàng)目里的相對(duì)路徑”)}
(2)官方文檔網(wǎng)絡(luò)圖片常規(guī)方式2:source={require(“一個(gè)url網(wǎng)絡(luò)路徑”)}
(3)使用drawable文件夾下面的資源文件:source={uri:”文件名”}。這里的文件名是不帶后綴的舌劳,所以…你懂的。
(4)使用網(wǎng)絡(luò)圖片方式2:source={uri:”圖片的url網(wǎng)絡(luò)路徑"}
(5)官方使用網(wǎng)絡(luò)base64文件流 source={uri:’data:數(shù)據(jù)類(lèi)型玫荣;base64甚淡,base64數(shù)據(jù)’,scale: 值} //這個(gè)辦法沒(méi)有親測(cè)過(guò)捅厂,但是文檔的例子是這么寫(xiě)的贯卦。
(6)使用android fileURI路徑:source={uri:‘file///fileURI’}
(7)使用 android contentURI :source={uri:’content://……...’}
后面的有待補(bǔ)充.................................
image的gif動(dòng)態(tài)圖支持:
? ? image組件并不是直接支持動(dòng)態(tài)gif圖,需要在外面套上一個(gè)View方能正常播放焙贷,否則撵割,只顯示第一幀~!
神坑1:大部分1幀gif圖會(huì)報(bào)錯(cuò)辙芍;少部分2幀GIF圖會(huì)報(bào)錯(cuò)啡彬,原因不明羹与,報(bào)錯(cuò)內(nèi)容:../../....gif,¥#%……&error 庶灿?纵搁?(額,大概就是這樣的)
image 布局: ?
(1)image的flex:
其實(shí)對(duì)flex彈性盒子支持并不好往踢,貌似直接使用完全無(wú)效(這個(gè)毛病很多組件都有)腾誉,需要在父級(jí)加一層view,flex操作view菲语,image自己控制好自己在view里面的位置妄辩,SO惑灵,盡量設(shè)寬高山上,不然.......呵呵
(2)image用做背景圖:
盡量不要使用寬度為1的圖片拉伸來(lái)得到一個(gè)背景.......原因同上,你又要開(kāi)始計(jì)算寬高英支,又要?jiǎng)討B(tài)賦值佩憾,這次加上view都不行了(原因不明),父級(jí)加上view用flex完全沒(méi)用干花,
SO,總結(jié)下來(lái)就是妄帘,不管你用什么辦法,你都得確定image里面圖片的寬高池凄,不然.....再次呵呵
這里補(bǔ)充一下抡驼,image設(shè)寬高有兩種:style屬性或者source屬性:source={uri:uri,width:x肿仑,heigh:y}
剩下的致盟,暫時(shí)沒(méi)遇到或者忘了,大家有遇到的快快留言
今天7/18尤慰,自從上周五升級(jí)了0.29.1之后馏锡,所有的GIF圖都掛了,原因不明伟端,就是顯示空白杯道,也不報(bào)錯(cuò),檢查了2天责蝠,如果哪個(gè)朋友有填過(guò)這個(gè)坑党巾,請(qǐng)馬上聯(lián)系我,非常非常非常非常非常的感謝霜医!
下午三點(diǎn)半齿拂,Android的GIF支持解決,原因是0.29版剝離了fresco支持庫(kù)支子。導(dǎo)入即可