Glide.with(this).load(R.drawable.your_gif).into(imageView); 需要的jar
时间: 2024-02-28 17:57:52 浏览: 124
Glide 是另一个流行的 Android 图片加载库,也可以使用 Gradle 来添加它的依赖。在 app 模块的 build.gradle 文件中添加以下代码:
```
dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
```
这样就可以使用 Glide 来加载图片了。注意,上述代码中的版本号可能已经过时,你可以到 Glide 库的 GitHub 页面查看最新版本号。如果你想加载 GIF 图片,可以使用 `.asGif()` 方法来加载:
```
Glide.with(this).load(R.drawable.your_gif).asGif().into(imageView);
```
在使用前,你需要先在布局文件中添加一个 ImageView 控件,用来显示加载的图片。
相关问题
E/GlideExecutor: Request threw uncaught throwable com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders registered for model class: class com.chenying.life0603.fragment.Fragment_main1$1$1 at com.bumptech.glide.load.model.ModelLoaderRegistry.getModelLoaders(ModelLoaderRegistry.java:77) at com.bumptech.glide.Registry.getModelLoaders(Registry.java:594) at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:212) at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:229) at com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:47) at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311) at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277) at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:424) at java.lang.Thread.run(Thread.java:764) at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:383)
这个错误通常出现在使用 Glide 加载图片时,表示 Glide 没有找到适合指定 model(即图片地址)的 ModelLoader。通常这是因为你没有正确地配置 Glide 的 ModelLoader 或者你传入的 model 格式不被 Glide 支持。你可以尝试检查 Glide 的配置和传入的 model 格式,或者尝试使用其他支持该格式的库来加载图片。如果你能提供更多的上下文和细节,我可以帮你更详细地解决这个问题。
以下代码,请用Bitmap替换Glide来实现同样的功能 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_IMAGE_CAPTURE) { Bitmap photo = (Bitmap) data.getExtras().get("data"); Uri tempUri = getImageUri(photo); selectedImagePath = tempUri.getPath(); Glide.with(this).load(tempUri).into(imageView); } else if (requestCode == REQUEST_IMAGE_PICK) { Uri selectedImageUri = data.getData(); selectedImagePath = selectedImageUri.getPath(); Glide.with(this).load(selectedImageUri).into(imageView); } } }
以下是使用Bitmap替换Glide的代码实现:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQUEST_IMAGE_CAPTURE) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
Uri tempUri = getImageUri(photo);
selectedImagePath = tempUri.getPath();
imageView.setImageBitmap(photo);
} else if (requestCode == REQUEST_IMAGE_PICK) {
Uri selectedImageUri = data.getData();
selectedImagePath = selectedImageUri.getPath();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在这个代码中,我们通过`setImageBitmap()`方法将Bitmap对象直接设置到ImageView中,而不是使用Glide库加载图片。对于拍摄的照片,我们直接使用`photo`作为Bitmap对象;对于从相册选择的照片,我们使用`MediaStore`来获取Bitmap对象。
阅读全文