This repository was archived by the owner on Sep 28, 2021. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork280
react native image pan and zoom
License
NotificationsYou must be signed in to change notification settings
ascoders/react-native-image-zoom
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Zoom while sliding
Intelligent zoom
npm i react-native-image-pan-zoom --save
- Install create-react-native-app first
$ npm install -g create-react-native-app
- Initialization of a react-native project
$ create-react-native-app AwesomeProject
- Then, edit
AwesomeProject/App.js, like this:
import{Image,Dimensions}from'react-native';importImageZoomfrom'react-native-image-pan-zoom';exportdefaultclassAppextendsReact.Component{render:function(){return(<ImageZoomcropWidth={Dimensions.get('window').width}cropHeight={Dimensions.get('window').height}imageWidth={200}imageHeight={200}><Imagestyle={{width:200,height:200}}source={{uri:'http://v1.qzone.cc/avatar/201407/07/00/24/53b9782c444ca987.jpg!200x200.jpg'}}/></ImageZoom>)}}
| Props | Type | Description | DefaultValue |
|---|---|---|---|
| cropWidth(required) | number | operating area width | 100 |
| cropHeight(required) | number | operating area height | 100 |
| imageWidth(required) | number | picture width | 100 |
| imageHeight(required) | number | picture height | 100 |
| onClick | (eventParams:IOnClick)=>void | onClick | ()=>{} |
| onDoubleClick | (eventParams:IOnClick)=>void | onDoubleClick | ()=>{} |
| panToMove | boolean | allow to move picture with one finger | true |
| pinchToZoom | boolean | allow scale with two fingers | true |
| clickDistance | number | how many finger movement can also triggeronClick | 10 |
| horizontalOuterRangeOffset | (offsetX?: number)=>void | horizontal beyond the distance, the parent to do picture switching, you can listen to this function. When this function is triggered, you can do the switch operation | ()=>{} |
| onDragLeft | ()=>void | trigger to switch to the left of the graph, the left sliding speed exceeds the threshold when triggered | ()=>{} |
| responderRelease | (vx: number)=>void | let go but do not cancel | ()=>{} |
| maxOverflow | number | maximum sliding threshold | 100 |
| longPressTime | number | long press threshold | 800 |
| onLongPress | (eventParams:IOnClick)=>void | on longPress | ()=> {} |
| doubleClickInterval | number | time allocated for second click to be considered as doublClick event | 175 |
| onMove | ( position:IOnMove )=>void | reports movement position data (helpful to build overlays) | ()=> {} |
| centerOn | { x: number, y: number, scale: number, duration: number } | if given this will cause the map to pan and zoom to the desired location | undefined |
| enableSwipeDown | boolean | for enabling vertical movement if user doesn't want it | false |
| enableCenterFocus | boolean | for disabling focus on image center if user doesn't want it | true |
| onSwipeDown | () => void | function that fires when user swipes down | null |
| swipeDownThreshold | number | threshold for firing swipe down function | 230 |
| minScale | number | minimum zoom scale | 0.6 |
| maxScale | number | maximum zoom scale | 10 |
| useNativeDriver | boolean | Whether to animate usinguseNativeDriver | false |
| onStartShouldSetPanResponder | () => boolean | Override onStartShouldSetPanResponder behavior | () => true |
| onMoveShouldSetPanResponder | () => boolean | Override onMoveShouldSetPanResponder behavior | undefined |
| onPanResponderTerminationRequest | () => boolean | Override onMoveShouldSetPanResponder behavior | () => false |
| useHardwareTextureAndroid | boolean | for disabling rendering to hardware texture on Android | true |
| Method | params | Description |
|---|---|---|
| reset | Reset the position and the scale of the image | |
| resetScale | Reset the scale of the image | |
| centerOn | ICenterOn | Centers the image in the position indicated. ICenterOn={ x: number, y: number, scale: number, duration: number } |
After clone this repo, then:
npm installnpm start
cd demonpm installnpm startThen, scan the QR, use yourexpo app.
Thanks goes to these wonderful people (emoji key):
Darius 💻 | Thomas P. 💻 | Juan Di Toro 💻 | Alhaytham Elhassan 💻 | Alexander Pataridze 💻 | Peter Xu 💻 |
This project follows theall-contributors specification. Contributions of any kind welcome!
About
react native image pan and zoom
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.

