本文共 4070 字,大约阅读时间需要 13 分钟。
测试的MainActivity.java,在这里面有四个不同的新版Glide 4.0使用方式:
package zhangphil.phildemo;import android.graphics.drawable.Drawable;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.Priority;import com.bumptech.glide.RequestBuilder;import com.bumptech.glide.load.DataSource;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.bumptech.glide.load.engine.GlideException;import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;import com.bumptech.glide.request.RequestListener;import com.bumptech.glide.request.RequestOptions;import com.bumptech.glide.request.target.Target;public class MainActivity extends AppCompatActivity { private String url = "https://www.baidu.com/img/bd_logo1.png"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView image1 = (ImageView) findViewById(R.id.image1); ImageView image2 = (ImageView) findViewById(R.id.image2); ImageView image3 = (ImageView) findViewById(R.id.image3); ImageView image4 = (ImageView) findViewById(R.id.image4); load1(image1); load2(image2); load3(image3); load4(image4); } private void load1(ImageView image) { Glide.with(this) .load(url) .apply(new RequestOptions().circleCrop().placeholder(R.mipmap.ic_launcher)) .transition(new DrawableTransitionOptions().crossFade(2000)) .into(image); } private void load2(ImageView image) { RequestOptions options = new RequestOptions() .centerCrop() .placeholder(R.mipmap.ic_launcher_round) .error(android.R.drawable.stat_notify_error) .priority(Priority.HIGH) //.skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC); Glide.with(this) .load(url) .apply(options) .into(image); } private void load3(ImageView image) { Glide.with(this) .load(url) .listener(new RequestListener本例给出了几个不同的方式使用新版Glide 4.0加载网络图片,对比这四种方式,可以举一反三变化出更多使用方法。() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { return false; } }) .apply(new RequestOptions().centerInside()) .thumbnail(Glide.with(this).load(R.mipmap.ic_launcher)) .into(image); } private void load4(ImageView image) { RequestBuilder mRequestBuilder = Glide.with(this).load(url); mRequestBuilder.listener(new RequestListener () { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { return false; } }).transition(new DrawableTransitionOptions().crossFade(2000)) .apply(new RequestOptions().circleCrop()) .into(image); }}
不要忘了添加读写存储和访问网络的权限:
代码运行结果:
附录:
1,Glide在github上的开源项目主页:https://github.com/bumptech/glide