Glide.with(getContext()).load(videoBean.getCoverUrl()) .transform(new CenterCrop(), new RoundedCornersTransformation(10,0,RoundedCornersTransformation.CornerType.TOP)) .listener(new RequestListener<Drawable>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { // 图片加载完成后,判断ImageView是否在屏幕中可见 if (target.isVisible()) { // ImageView在屏幕中可见,直接显示图片 target.onResourceReady(resource, null); } return true; } }) .into(coverImageView);没有target.isVisible()这个方法
时间: 2024-02-10 17:35:26 浏览: 68
你说的对,确实没有`target.isVisible()`这个方法。可能是因为新版本的Glide已经不再支持这个方法了。如果你想判断ImageView是否在屏幕中可见,可以使用`ViewCompat.isAttachedToWindow(view) && view.getGlobalVisibleRect(rect)`来判断。其中,`ViewCompat.isAttachedToWindow(view)`用来判断View是否被附加到了Window上,`view.getGlobalVisibleRect(rect)`用来获取View在屏幕中的可见区域。
相关问题
Glide.with().load()中可以加载base64图片吗
Glide库本身并不直接支持Base64编码的图片作为参数。`Glide.with().load()`方法通常用于加载网络图片URL、本地文件路径或者是Uri。如果你有一个Base64编码的图片数据,你需要先将其转换为Bitmap或者File对象,然后才能通过Glide加载。
你可以按照以下步骤操作:
1. 将Base64字符串解码成字节数组(ByteArray)。
```java
byte[] decodedBytes = Base64.decode(base64String, Base64.DEFAULT);
```
2. 创建一个临时文件,将字节数组写入到这个文件里:
```java
File file = File.createTempFile("temp", ".jpg");
OutputStream output = new FileOutputStream(file);
output.write(decodedBytes);
output.close();
```
3. 然后使用Glide加载这个临时文件:
```java
Glide.with(context).load(file).into(imageView);
```
请注意,这种方法不太高效,因为它涉及到额外的I/O操作和文件创建。如果需要频繁处理Base64图片,推荐考虑存储在缓存或数据库中,或者直接在内存中解码并显示。
Glide.with load asset 下图片
使用 Glide Assets 加载本地资源文件的步骤如下:
1. 引入 Glide Assets 库
在项目的 build.gradle 文件中添加以下依赖:
```
dependencies {
implementation 'com.github.bumptech.glide:glide:4.12.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.12.0'
implementation 'com.github.bumptech.glide:glide-compiler:4.12.0'
implementation 'com.github.bumptech.glide:assets:0.2.4'
}
```
2. 加载本地资源文件
通过 Glide.with() 方法获取 Glide 实例,并调用 load() 方法加载资源文件,最后通过 into() 方法将资源文件加载到 ImageView 中。
```
Glide.with(context)
.load("file:///android_asset/image.jpg")
.into(imageView);
```
其中,file:///android_asset/image.jpg 表示资源文件的路径,可以根据实际情况进行修改。另外,需要注意的是,Glide Assets 只能加载 assets 目录下的资源文件。
阅读全文