1.0.2 • Published 9 months ago
@mdzakir/react-native-wallpaper v1.0.2
Wallpaper Manager for React Native
A React Native module that gives you fine-grained control over wallpaper positioning on Android.
Installation
npm install --save @mdzakir/react-native-wallpaper
# or
yarn add @mdzakir/react-native-wallpaperLinking (React Native < 0.60)
react-native link @mdzakir/react-native-wallpaperFor React Native 0.60 and above, the module will be auto-linked.
Manual Linking (if needed)
Android
- Open
android/app/src/main/java/[...]/MainApplication.java - Add
import com.your.package.name.WallpaperPackage;to the imports section - Add
packages.add(new WallpaperPackage());to the list in thegetPackages()method
Permissions
Add these permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.INTERNET" /> <!-- If loading from URLs -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- If loading from file system -->Usage
import WallpaperManager from '@mdzakir/react-native-wallpaper';
// Set wallpaper with centering
WallpaperManager.setWallpaper(
'/path/to/image.jpg', // Local file path or URL
{
isSystem: true, // Set as system wallpaper (default: true)
isLock: false, // Set as lock screen wallpaper (default: false)
centerHorizontally: true, // Center wallpaper horizontally (default: true)
},
)
.then(() => console.log('Wallpaper set successfully'))
.catch(error => console.error('Failed to set wallpaper:', error));Example Usage
import React from 'react';
import {Button, View} from 'react-native';
import WallpaperManager from '@mdzakir/react-native-wallpaper';
function WallpaperScreen() {
const setWallpaper = async () => {
try {
// Local image example
await WallpaperManager.setWallpaper(
'/storage/emulated/0/Download/wallpaper.jpg',
{
isSystem: true,
isLock: false,
centerHorizontally: true,
},
);
// OR remote image example
// await WallpaperManager.setWallpaper(
// 'https://example.com/wallpaper.jpg',
// { centerHorizontally: true }
// );
console.log('Wallpaper set successfully');
} catch (error) {
console.error('Failed to set wallpaper:', error);
}
};
return (
<View>
<Button title="Set Wallpaper" onPress={setWallpaper} />
</View>
);
}
export default WallpaperScreen;API
setWallpaper(uri, options)
Sets an image as the device wallpaper with fine-grained positioning control.
Parameters:
- uri (String): Local file path or remote URL to the image
- options (Object):
- isSystem (Boolean): Set as system wallpaper (default: true)
- isLock (Boolean): Set as lock screen wallpaper (default: false)
- centerHorizontally (Boolean): Center wallpaper horizontally (default: true)Returns:
- Promise that resolves when the wallpaper is set
Troubleshooting
- For Pixel devices and other newer Android phones, make sure
centerHorizontallyis set totrue - If wallpaper still appears shifted, try using an image with dimensions that match your device's screen resolution
- For older Android versions (<7.0), only basic wallpaper setting is supported without positioning options