虚拟设备ID:vdevo175248670529913
相关DP点:DP122,DP123
代码如下:
Code: Select all
_renderBacklightOptView = () => {
const {backlightVal}=this.state;
// 需要将数据转成字节序,
console.log("getBacklightVal:",backlightVal)
let byteArray = this._hexToBytes(backlightVal);
console.log('get blackLightVal:',byteArray);
let intBacklightVal =byteArray[0];
intBacklightVal = intBacklightVal<0?0:intBacklightVal;
intBacklightVal = intBacklightVal>30?30:intBacklightVal;
const heightLine =cx(140);
return(
<View style={{width:'100%',height:heightLine,paddingLeft:cx(10),paddingRight:cx(10)}}>
<TYText style={[styles.sensitivityTextStyle, { color:'#92959F',marginBottom:cx(10)}]}>
{Strings.getLang('setting_title_backlight_opt')}
</TYText>
<View style={{display:'flex',flexDirection:'row',alignItems:'center',justifyContent:'center',marginTop:cx(6),width:'100%',height:cx(15)}}>
<Text style={{fontSize:14,color:'#828282',marginRight:cx(10)}}>{intBacklightVal}%</Text>
</View>
<View style={{display:'flex',flexDirection:'row',width:'100%',height:cx(40),alignItems:'center',justifyContent:'center'}}>
<Image source={res.base_sun0} style={{width:cx(20),height:cx(20),marginRight:cx(10)}}></Image>
<Slider.Horizontal
value={intBacklightVal}
onValueChange={(value)=>{
// 考虑到前期rgb数据始终为0xff,
this._updateBacklightValue(value);
}}
onSlidingComplete={(value)=>{
const updateValue = this._updateBacklightValue(value);
this.props.updateDp({
[Config.dpCodes.backlightVal]:updateValue
})
}}
style={{width:'80%',height:cx(40)}}
minimumValue={0}
maximumValue={30}
stepValue={1}
minimumTrackTintColor={ActiveThemeColor}
thumbTintColor={ActiveThemeColor}
thumbStyle={{borderWidth:6,backgroundColor:'white',borderColor:ActiveThemeColor}}
></Slider.Horizontal>
<Image source={res.base_sun1} style={{width:cx(20),height:cx(20),marginLeft:cx(10)}}></Image>
</View>
</View>
)
}
相关的数值转换函数如下:
Code: Select all
// 将hex字符串转成字节数组
_hexToBytes=(hex)=>{
const bytes=[];
for(let i=0;i<hex.length;i+=2){
bytes.push(parseInt(hex.substr(i,2),16));
}
return bytes;
}
// 将字节数组转成HEX字符串
_byteToHexString=(bytes)=>{
let hexString = "";
for(let i=0;i<bytes.length;i++){
hexString+= bytes[i].toString(16).padStart(2,"0");
}
return hexString;
}
// 更新state的数据
_updateBacklightValue=(data)=>{
const datas = [Math.round(data),0xff,0xff,0xff]
const updateValue = this._byteToHexString(datas)
console.log("需要更新的backlightVal:",updateValue);
this.setState({
backlightVal:updateValue
})
return updateValue;
}