React?Native之在Android上添加陰影的實(shí)現(xiàn)
在Android上添加陰影
官網(wǎng)中明確表示在react native中陰影的樣式屬性shadow...都是只支持iOS的,并不支持Android。

目前有個(gè)方法
可以讓Android有灰色的陰影,但是無法指定Android機(jī)上的陰影色值,只能是灰色的默認(rèn)。
elevation:4 這個(gè)屬性中的4是代表陰影的高度。
且這個(gè)屬性添加后,不會(huì)影響iOS機(jī)上的原本的彩色的陰影顏色,只是在Android機(jī)上顯示的是默認(rèn)的灰色的陰影。
btnView:{
width:170,
alignItems:'center',
borderRadius:20,
height:35,
justifyContent:'center',
backgroundColor: Color.CMHeaderBgColor,
//以下是陰影屬性:
shadowOffset: {width: 0, height: 5},
shadowOpacity: 0.5,
shadowRadius: 5,
shadowColor: Color.CMHeaderBgColor,
//注意:這一句是可以讓安卓擁有灰色陰影
//elevation: 4,
zIndex: Global.isIOS() ? 1 : 0
}補(bǔ)充:有兩種方式,解決安卓可以實(shí)現(xiàn)彩色陰影的問題:
方法一:使用react-native-shadow和react-native-svg實(shí)現(xiàn):
1. npm install react-native-shadow
2. npm install react-native-svg@5.1.8
備注:react-native-svg選擇什么版本安裝,需要根據(jù)你項(xiàng)目的react版本和react-native版本;圖解如下:

3. react-native link react-native-svg
4.開始寫樣式,適合安卓和iOS的陰影,支持透明度,長度,色值的配置:
import React, {Component} from 'react'
import {
StyleSheet,
View,
Text,
ScrollView,
Image,
TouchableOpacity
} from 'react-native'
import {BoxShadow} from 'react-native-shadow'
export default class VideoCell extends Component {
render = () => {
const shadowOpt = {
width:160,
height:170,
color:"#000",
border:2,
radius:3,
opacity:0.2,
x:0,
y:3,
style:{marginVertical:5}
}
return (
<BoxShadow setting={shadowOpt}>
<TouchableOpacity style={{
position:"relative",
width: 160,
height: 170,
backgroundColor: "#fff",
borderRadius:3,
// marginVertical:5,
overflow:"hidden"}}>
測試
</TouchableOpacity>
</BoxShadow>
)
}
}事實(shí)證明這種方法可以實(shí)現(xiàn)我們想要的效果。但是這會(huì)牽扯到你的項(xiàng)目不能僅僅通過熱更新來迭代版本;需要發(fā)app store大版本和安卓市場版本。
如有不解,可移步查看react-native-shadow官網(wǎng):
https://www.npmjs.com/package/react-native-shadow
方法二:
我們可以使用陰影圖作為背景圖,附著上去的方法:
<Image source={require('../../content/img/bank/shadowBg.png')}
style={{width: deviceWidth-20, height: 220, alignItems: 'center',resizeMode:Image.resizeMode.contain}}>
<View style={styles.bankTop}></View>
</Image>Image組件,當(dāng)為單標(biāo)簽是圖片;當(dāng)未雙標(biāo)簽是背景;
如圖:可以看到有屎黃色?的背景:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android Studio查看Android 5.x源碼的步驟詳解
Google為Android開發(fā)者帶來Android Studio,用來取代Eclipse。從Android Studio出現(xiàn)起,整機(jī)開發(fā)和Android源碼閱讀和編輯一定能用上它。這篇文章小編就帶大家學(xué)習(xí)下如何使用Android Studio查看Android 5.x源碼,有需要的可以參考借鑒。2016-09-09
Popupwindow 的簡單實(shí)用案例(顯示在控件下方)
下面小編就為大家?guī)硪黄狿opupwindow 的簡單實(shí)用案例(顯示在控件下方)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Android通過交互實(shí)現(xiàn)貝塞爾曲線的繪制
本篇我們將介紹簡單的交互式繪圖,通過獲取觸控位置來設(shè)定貝塞爾曲線的控制點(diǎn),從而實(shí)現(xiàn)交互式繪制曲線,感興趣的小伙伴可以了解一下2022-05-05
詳解Android獲取系統(tǒng)內(nèi)核版本的方法與實(shí)現(xiàn)代碼
這篇文章主要介紹了詳解Android獲取系統(tǒng)內(nèi)核版本的方法與實(shí)現(xiàn)代碼的相關(guān)資料,這里提供了具體實(shí)現(xiàn)獲取內(nèi)核的方法,需要的朋友可以參考下2017-07-07
Android Chronometer控件實(shí)現(xiàn)計(jì)時(shí)器函數(shù)詳解
這篇文章主要為大家詳細(xì)介紹了Android Chronometer控件實(shí)現(xiàn)計(jì)時(shí)器函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-04-04

