how to make the blur effect with react-native?

前端 未结 8 2059
春和景丽
春和景丽 2020-12-24 05:03

how to make the blur effect with react-native ? like \'background-image\'

and i want to switch the effect \'blur\' and \'none\',\'none\' means no blur effe

相关标签:
8条回答
  • 2020-12-24 05:37

    Try using {ImageBackground} from 'react-native' and set blurRadius={number} like this:

    <ImageBackground
          style={{flex: 1}}
          source={require('../assets/example.jpg')}
          blurRadius={90}>
        <Text>Blur background<Text>
    </ImageBackground>
    

    https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting https://facebook.github.io/react-native/docs/image.html#blurradius

    0 讨论(0)
  • 2020-12-24 05:47

    To blur and an entire View in react-native you can use @react-native-community/blur and apply it like this:

    import React, { Component } from 'react';
    import { BlurView } from '@react-native-community/blur';
    import {
      StyleSheet,
      Text,
      View,
      findNodeHandle,
      Platform,
      Image,
    } from 'react-native';
    
    const styles = StyleSheet.create({
      title: {
        color: 'black',
        fontSize: 15,
      },
      absolute: {
        position: 'absolute',
        top: 0,
        left: 0,
        bottom: 0,
        right: 0,
      },
      blurredView: {
        // For me android blur did not work until applying a background color:
        backgroundColor: 'white',
      },
    });
    
    export default class MyBlurredComponent extends Component {
      constructor(props) {
        super(props);
        this.state = { viewRef: null };
      }
    
      onTextViewLoaded() {
        this.setState({ viewRef: findNodeHandle(this.viewRef) });
      }
    
      render() {
        return (
          <View>
            <View
              style={[
                styles.blurredView,
              ]}
              ref={(viewRef) => { this.viewRef = viewRef; }}
              onLayout={() => { this.onTextViewLoaded(); }}
            >
              <Image
                style={{ width: 100, height: 100 }}
                source={{ uri: 'https://facebook.github.io/react-native/docs/assets/GettingStartedCongratulations.png' }}
              />
              <Text style={[styles.title]}>
                TEXT 2222 \n
                TEXT 3333
              </Text>
            </View>
            {
              (this.state.viewRef || Platform.OS === 'ios') && <BlurView
                style={styles.absolute}
                viewRef={this.state.viewRef}
                blurType="light"
                blurAmount={3}
                blurRadius={5}
              />
            }
          </View>
        );
      }
    }
    

    // Deps:

     "react-native": "0.53.3",
     "@react-native-community/blur": "^3.2.2"
    

    Result:

    0 讨论(0)
提交回复
热议问题