我正在显示来自服务器的图像列表。图像可能具有不同的尺寸和分辨率。我发现Image需要花费一些时间才能加载到Imageview中。
即使在良好的互联网网络中,也要花费大量时间。
if (imageView != null && imageUri != null) {
RequestOptions options = new RequestOptions();
options.error(R.drawable.ic_payment_failed);
options.format(DecodeFormat.PREFER_RGB_565);
options.override(500, 500);
imageView.setImageUri(imageUri);
Glide.with(context).asBitmap()
.apply(options)
.load(imageUri)
.into(imageView.getProfilePic());
}
}
我尝试了许多滑动方法来提高加载速度,但没有结果。
并且如果尝试加载大图像(即4-5 MB),则Glide throwing无法加载资源异常。为了处理此类问题,我使用了转换。但是仍然没有结果。
我希望图像能快速显示。
答案 0 :(得分:0)
您可以将GlideApp用于新版本的滑行。
您必须在项目中创建一个名为MyAppGlideModule
的Java类。并像下面的代码一样制作类。
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
}
,您还可以将OKHttp
用于glide
,并在您的Gradle
中添加这种依赖性。
implementation "com.github.bumptech.glide:okhttp3-integration:4.8.0"
并替换该类
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(15, TimeUnit.SECONDS)
.connectTimeout(15, TimeUnit.SECONDS)
.build();
OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory);
}
}
在Build
您的项目之后。在构建项目之后。您可以使用GlideApp
代替Glide
。像这样
GlideApp.with(context)
.load(myUrl)
.placeholder(placeholder)
.into(yourTarget);
您可以使用最新版本的glide。
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'