我在下面有这个片段:
public void onReceive(Context context, Intent intent) {
try {
int random_int = (int)Math.floor(Math.random() * (max - min + 1) + min);
if(random_int == 0){
wallpaperManager.setResource(R.drawable.phonewallpaper1, WallpaperManager.FLAG_LOCK);
}else if(random_int == 1){
wallpaperManager.setResource(R.drawable.phonewallpaper2, WallpaperManager.FLAG_LOCK);
}else if(random_int == 2){
wallpaperManager.setResource(R.drawable.phonewallpaper3, WallpaperManager.FLAG_LOCK);
}else if(random_int == 3){
wallpaperManager.setResource(R.drawable.phonewallpaper4, WallpaperManager.FLAG_LOCK);
}
// set the wallpaper by calling the setResource function and
// passing the drawable file
} catch (IOException e) {
// here the errors can be logged instead of printStackTrace
e.printStackTrace();
}
此代码基本上是根据drawable文件夹中的静态图像(4张图像)随机设置屏幕锁壁纸。 如果我将 4 个新图像放入 Android 设备的文件夹中,例如在“/storage/emulated/0/downloads/contents/”下。
如何根据“/storage/emulated/0/downloads/contents/”下的图像动态更改可绘制文件夹中的图像?
以编程方式替换可绘制文件夹中的图像是否更容易,或者只是将代码指向文件夹“/storage/emulated/0/downloads/contents/”?
我在谷歌上搜索了如何执行此操作,但无法真正找到任何从设备文件夹中设置屏幕锁壁纸的内容。
谢谢你
File image1 = new File(Environment.getExternalStorageDirectory(), "/downloads/image1.jpg");
File image2 = new File(Environment.getExternalStorageDirectory(), "/downloads/image2.jpg");
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());
Bitmap myBitmap1 = BitmapFactory.decodeFile(image1.getAbsolutePath());
Bitmap myBitmap2 = BitmapFactory.decodeFile(image2.getAbsolutePath());
@SuppressLint("ResourceType")
// on below line initializing web view with id.
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
int random_int = (int)Math.floor(Math.random() * (max - min + 1) + min);
if(random_int == 0){
wallpaperManager.setBitmap(myBitmap1,null, true, WallpaperManager.FLAG_LOCK);
}else if(random_int == 1){
wallpaperManager.setBitmap(myBitmap2,null, true, WallpaperManager.FLAG_LOCK);
}