react-native-image-zoom-viewer实现了类似微信朋友圈浏览图片的效果,点击小图片实现浏览原图效果

封装组件:

/* 图片预览组件 */
import { View, Text,Modal } from 'react-native'
import React from 'react'
import ImageViewer from 'react-native-image-zoom-viewer';
export default function Index({isVisible,imgs,close}) {
  return (
    <Modal visible={isVisible} transparent={true}>
        <ImageViewer
         imageUrls={imgs}
         onSwipeDown={close}  // 向下滑动关闭模态框
         enableSwipeDown={true}  // 确保启用向下滑动
         />
        <Text style={{color:"#fff"}}>关闭</Text>
    </Modal>
  )
}

使用:

import { View, Text,Image,TouchableOpacity } from 'react-native'
import React,{useState} from 'react'
import ImageView from '../../../components/ImageView'
import { setWidth } from '../../../utils/styleAdb'
export default function index() {
  const [imageModal, setimageModal] = useState(false)
  const [imgs, setimgs] = useState([{url:'https://avatars2.githubusercontent.com/u/7970947?v=3&s=460'},{url:'https://avatars2.githubusercontent.com/u/7970947?v=3&s=460'}])
  return (
    <View style={{marginTop:setWidth(300)}}>
      <TouchableOpacity onPress={()=>{setimageModal(true)}}>
        <Image source={{uri:'https://avatars2.githubusercontent.com/u/7970947?v=3&s=460'}}style={{width:100,height:100}}></Image>
      </TouchableOpacity>

      <ImageView  isVisible={imageModal} close={()=>{setimageModal(false)}} imgs={imgs}/>
    </View>
  )
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐