Android加载图片可以使用Glide、Picasso等第三方库,也可以使用原生的BitmapFactory和ImageView类。
Android加载图片
使用Glide加载图片
1、添加依赖:在项目的build.gradle文件中添加Glide的依赖。
dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' }
2、在Activity或Fragment中初始化Glide。
import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; // ... Glide.with(this).load("图片URL").apply(RequestOptions.circleCropTransform()).into(imageView);
使用Picasso加载图片
1、添加依赖:在项目的build.gradle文件中添加Picasso的依赖。
dependencies { implementation 'com.squareup.picasso:picasso:2.71828' }
2、在Activity或Fragment中初始化Picasso。
import com.squareup.picasso.Picasso; // ... Picasso.get().load("图片URL").into(imageView);
使用Fresco加载图片(适用于大型项目)
1、添加依赖:在项目的build.gradle文件中添加Fresco的依赖。
dependencies { implementation 'com.facebook.fresco:fresco:2.5.0' annotationProcessor 'com.facebook.fresco:animatedbasesupport:2.5.0' annotationProcessor 'com.facebook.fresco:animatedwebpsupport:2.5.0' annotationProcessor 'com.facebook.fresco:webpsupport:2.5.0' }
2、在Application类中初始化Fresco。
import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder; import com.facebook.drawee.generic.RoundingParams; import com.facebook.drawee.viewpager.widget.DraweeViewPager; import com.facebook.drawee.viewpager.widget.DraweeViewPagerAdapter; import com.facebook.drawee.viewpagerutils.IcsTransitionImageViewPagerAdapter; import com.facebook.imagepipeline.*; import com.facebook.imagepipeline.listener.*; import com.facebook.imagepipeline.producers.*; import com.facebook.imagepipeline.request.*; import com.facebook.imagepipeline.*; import com.facebook.imagepipeline.*; import com.facebook.*; // 导入Facebook相关的库,根据需要选择导入的包名。 // ... public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); FrescoInitializer frescoInitializer = FrescoInitializer(); // 自定义的Fresco初始化类,可以在这里进行一些额外的配置。 ImagePipelineConfig imagePipelineConfig = ImagePipelineConfigFactory().createDefaultConfig(this); // 创建默认的ImagePipeline配置。 FrescoSystraceInterceptor frescoSystraceInterceptor = new FrescoSystraceInterceptor(); // 创建Systrace拦截器,用于调试和性能分析。 FrescoTelemetry telemetry = new FrescoTelemetry(); // 创建Telemetry对象,用于收集性能数据。 Fresco fresco = FrescoImplUtilityHoldersKt.__initializeWithImagePipelineConfig(imagePipelineConfig, frescoSystraceInterceptor, telemetry); // 初始化Fresco。 FrescoImagePipelineFactory factory = new FrescoImagePipelineFactory(); // 创建ImagePipeline工厂。 ImagePipeline imagePipeline = factory.getInstance(fresco); // 获取ImagePipeline实例。 // ... 其他代码,例如设置缓存策略等。 } }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/540350.html