使用react-native-image-viewer实现大图预览

 更新时间:2022年09月15日 10:29:01   作者:xiangzhihong8  
这篇文章主要介绍了使用react-native-image-viewer实现大图预览,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

react-native-image-viewer大图预览

在移动开发中,特别是涉及到图片的应用开发中,经常会遇到图片预览等功能,并且预览支持图片的放大和缩小,在Android原生开发中可以使用PhotoViewPager库实现,如果在React Native中,可以选择使用react-native-image-viewer

先看一个实现的效果

实例

使用前需要先安装react-native-image-viewer库,安装命令如下:

npm i react-native-image-zoom-viewer --save

然后引入ImageViewer组件,然后设置图片的数据源即可,imageUrls接受一个图片数组。

下面是一个简单的实例代码

import React, {PureComponent, Component} from 'react'
import {View, Modal,Navigator} from 'react-native';
import ImageViewer from 'react-native-image-zoom-viewer';
const images = [{
        url: "https://avatars2.gitdubusercontent.com/u/7970947?v=3&s=460",
        // url:
        // "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527660246058&di=6f0f1b19cf05a64317cbc5d2b3713d64&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F0112a85874bd24a801219c7729e77d.jpg",
        // props: {
        //     // headers: ...
        //     // source: require('./img.png')
        // },
        // freeHeight: true
    },
    {url: "https://avatars2.gitdubusercontent.com/u/7970947?v=3&s=460"}
];
export default class ImageZoom extends PureComponent {
    state = {
        index: 0,
        modalVisible: true
    };
    render() {
        return (
            <View
                style={{
                    padding: 10
                }}
            >
                <Modal
                    visible={tdis.state.modalVisible}
                    transparent={true}
                    onRequestClose={() => tdis.setState({modalVisible: false})}>
                    <ImageViewer imageUrls={images} index={tdis.state.index}/>
                </Modal>
            </View>
        )
    }
}

Props

react-native-image-viewer库提供了诸多的属性,常见的属性如下。

属性名type描述默认值
imageUrls(必填)array图片数据源 
enableImageZoomboolean是否可以进行缩放操作true
onShowModal(content?: JSX.Element) => void弹出大图回调() => {}
onCancel() => void取消图片回调() => {}
fliptdresholdnumber滑动到下一页的X值80
maxOverflownumber滑动到下一页的X位置最大值300
indexnumber初始显示第几张图片0
failImageSource{uri: string}加载失败显示图片
loadingRender() => React.ReactElement渲染loading() => null
onSaveToCamera(index?: number => void保存到相机的回调() => {}
onChange(index?: number => void图片切换时触发() => {}
saveToLocalByLongPressboolean是否开启长按保存图片到本地true
onClick(onCancel?: function) => void单击事件(onCancel) => {onCancel()}
onDoubleClick(onCancel?: function) => void双击事件(onCancel) => {onCancel()}
onSave(url: string) => void保存图片到本地,(onCancel) => {onCancel()}
renderFooter() => React.ReactElement自定义头部() => null
renderFooter() => React.ReactElement自定义尾部视图() => null
renderIndicator(currentIndex?: number, allSize?) => React.ReactElement: number自定义计时器(currentIndex, allSize) => currentIndex + “/” + allSize
renderImage(props: any) => React.ReactElement自定义Image组件(props) =>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • React Native全面屏状态栏和底部导航栏适配教程详细讲解

    React Native全面屏状态栏和底部导航栏适配教程详细讲解

    最近在写 React Native 项目,调试应用时发现顶部状态栏和底部全面屏手势指示条区域不是透明的,看起来很难受。研究了一下这个问题,现在总结一下解决方案,这篇文章主要介绍了React Native全面屏状态栏和底部导航栏适配教程
    2023-01-01
  • 详解react-native WebView 返回处理(非回调方法可解决)

    详解react-native WebView 返回处理(非回调方法可解决)

    这篇文章主要介绍了详解react-native WebView 返回处理(非回调方法可解决),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • React 函数式组件和类式组件详情

    React 函数式组件和类式组件详情

    这篇文章主要介绍了React函数式组件和类式组件详情,React是组件化的的JS库,组件化也是React的核心思想,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • React Hooks - useContetx和useReducer的使用实例详解

    React Hooks - useContetx和useReducer的使用实例详解

    这篇文章主要介绍了React Hooks - useContetx和useReducer的基本使用,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • Webpack 4.x搭建react开发环境的方法步骤

    Webpack 4.x搭建react开发环境的方法步骤

    这篇文章主要介绍了Webpack 4.x搭建react开发环境的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • React中react-redux和路由详解

    React中react-redux和路由详解

    这篇文章主要介绍了React中react-redux和路由详解,redux早期被设计成可以在各个框架中使用,因此在不同的框架中使用的时候,要引入相应的插件,感兴趣的朋友可以继续学习下面文章
    2022-08-08
  • React.js入门实例教程之创建hello world 的5种方式

    React.js入门实例教程之创建hello world 的5种方式

    React 是近期非常热门的一个前端开发框架。应用非常广泛,接下来通过本文给大家介绍React.js入门实例教程之创建hello world 的5种方式 ,需要的朋友参考下吧
    2016-05-05
  • 关于react中的常见错误及解决

    关于react中的常见错误及解决

    这篇文章主要介绍了关于react中的常见错误及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • react-router JS 控制路由跳转实例

    react-router JS 控制路由跳转实例

    这篇文章主要介绍了react-router JS 控制路由跳转实例,react实现路由可以直接使用react-router。有兴趣的可以了解一下
    2017-06-06
  • react map使用方法实例详解

    react map使用方法实例详解

    map()方法是在React中常用的数组处理方法之一,可以用于遍历数组、生成组件列表以及进行数据转换等操作,通过合理运用map()方法,可以更灵活地处理和展示数据,下面给大家讲解react map使用方法,感兴趣的朋友一起看看吧
    2023-10-10

最新评论