React Native component for the Google VR Panorama Widget
Note: Required Android 4.4 or higher and at least Android SDK Version 23
- Supports
mono
andstereo
images - Image loading from the internet
- NPM install
npm install --save react-native-google-vr-panorama
- Add the following to your
settings.gradle
file located in theandroid
folder:
include ':react-native-google-vr-panorama'
project(':react-native-google-vr-panorama').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-vr-panorama/android')
- Copy the required
.aar
fromandroid/libs
in this project to theandroid/app/libs
folder in your project (create if not present):
common.aar
commonwidget.aar
panowidget.aar
- Add the
libs
dir as a flat directory repository inbuild.gradle
underapp
folder:
repositories {
flatDir {
dirs 'libs'
}
}
- Update your project dependencies in
build.gradle
underapp
folder to include the required dependencies:
...
dependencies {
compile(name: 'common', ext: 'aar')
compile(name: 'commonwidget', ext: 'aar')
compile(name: 'panowidget', ext: 'aar')
compile project(':react-native-google-vr-panorama')
}
- Add the package to the
getPackages
method in theMainApplication.java
file:
import com.xebia.googlevrpanorama.RNGoogleVRPanoramaPackage;
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNGoogleVRPanoramaPackage()
);
}
Import the package and view:
import GoogleVRPanorama, { PanoramaView } from 'react-native-google-vr-panorama'
Render the view:
render() {
const imageUrl = 'http://www.google.com/image.jpg'
const inputType = GoogleVRPanorama.inputType.stereo
return (
<PanoramaView imageUrl={imageUrl} inputType={inputType} />
)
}
An example has been provided in example/index.android.js
Due to the constrained system resources that mobile devices have, loading large images as a Bitmap
can cause out of memory errors.
To prevent OOM errors, supply dimensions
to the component. When you specify dimensions the component will automatically calculate the sample size and reduce the Bitmap
size to the exact dimensions.
If not specified, the original image size will be loaded.
Prop | Type | Required | Description | Default |
---|---|---|---|---|
imageUrl |
string |
Required | The URL of the image that the component should display | N/A |
dimensions |
object |
Optional | The dimensions of the image | { width: 0, height: 0 } |
inputType |
number |
Optional | The input type for the image. One of GoogleVRPanorama.inputType.mono , GoogleVRPanorama.inputType.stereo |
GoogleVRPanorama.inputType.mono |
| Prop | Properties | Description |
|---|---|---|---|---|
| onImageLoaded
| undefined
| Fired when the image has successfully loaded |
| onImageLoadingFailed
| undefined
| Fired when the image failed to load |