React-Native:How Can I get multiple marker images, When I clicking On multiple Positions(like X and Y coordinates)

前端 未结 1 1057
北恋
北恋 2020-12-18 15:33

I am Developing an sample Application in React native.Actually when i am Clicking on Particular Position On an image, getting the Corresponding x and y co-ordinates.But at

相关标签:
1条回答
  • 2020-12-18 16:04

    Finally i solved My issue:

    import React, { Component } from 'react';
    import {
      AppRegistry,
      StyleSheet,
      Text,
      Alert,
      AlertIos,
      Image,
      Coordinates,
      TouchableOpacity,
      View
    } from 'react-native';
    
    import Badge from 'react-native-smart-badge'
    
    var Dimensions = require('Dimensions');
    var windowSize = Dimensions.get('window');
    export default class index extends Component {
      constructor(props) {
        super(props)
        this.state={
          xcor:null,
          ycor:null,
          corx:'',
          array:[],
          count: 0
    
        }
    
      }
    
    
    
    
    handlePress(evt){
      var array =this.state.array
      var count = 0
      console.log("Coordinates",`x coord = ${evt.nativeEvent.locationX}`);
      console.log("Coordinates",`y coord = ${evt.nativeEvent.locationY}`);
      var cordinates = {"xcor":evt.nativeEvent.locationX,
        "ycor":evt.nativeEvent.locationY,
        "name" :"Keven"}
      array.push(cordinates)
      this.setState({
        array:array
      })
    
     /* this.setState({
        xcor:evt.nativeEvent.locationX,
        ycor:evt.nativeEvent.locationY,
        corx:evt.nativeEvent.locationX
      })*/
    }
    
      render() {
        var array =[];
        if(this.state.array.length != 0){
          this.state.array.map((res)=>{
            array.push(
              <View style={{position:"relative",flex:1,left:res.xcor,top:res.ycor,right:res.xcor,bottom:res.ycor}}>
               <Badge textStyle={{color: 'white',}} minWidth={18} minHeight={18} style={{marginTop: 8,marginLeft:-16}}>
                        {res.name}
                    </Badge>
                <Image source={require('./logo.png')} style={{resizeMode:'cover',width:35,height:35}}>
                </Image>
              </View>
              )
          })
        }
        return (
          <View style={styles.container} >
          <View style={{position:'absolute'}} >
          <TouchableOpacity onPress={(evt) => this.handlePress(evt)}>
          <Image  source={require('./back2.jpg')} style={{resizeMode:'cover',width:windowSize.width,height:windowSize.height}}>
            </Image>
             </TouchableOpacity>
    
            </View>
    
            {this.state.array.length != 0 ?(
              <View >
                    {array}
                  </View>
              ):(<View></View>)
             }
    
          </View>
        );
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
    
      }
    });
    
    module.exports=index;
    
    0 讨论(0)
提交回复
热议问题