我正在尝试设置gif壁纸,但该应用程序崩溃了。 这适用于简单的图像(png,jpg)
错误消息:
java.lang.ClassCastException:com.bumptech.glide.load.resource.gif.GifDrawable无法转换为android.graphics.drawable.BitmapDrawable
Glide.with(this).load(getIntent().getStringExtra("images")).into(imageView);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
WallpaperManager manager = WallpaperManager.getInstance(getApplicationContext());
try {
manager.setBitmap(bitmap);
Toasty.success(getApplicationContext(), "Set Wallpaper Successfully", Toast.LENGTH_SHORT, true).show();
}
catch (IOException e) {
Toasty.warning(this, "Wallpaper not load yet!", Toast.LENGTH_SHORT, true).show();
}
我要设置gif壁纸(动态壁纸)
答案 0 :(得分:2)
GifDrawable
是Drawable
返回的getDrawable()
的子元素,以前是使用{p>
Glide.with(this).load(getIntent().getStringExtra("images")).into(imageView);
所以GifDrawable
和BitmapDrawable
是兄弟姐妹,所以不能互相投射。
或者,您可以使用getFirstFrame()
来获得Bitmap
作为
Bitmap bitmap = ((GifDrawable)imageView.getDrawable()).getFirstFrame();