Interface
public interface MyDataCallback {
void loadSuccess(Drawable drawable);
void loadFailed(String errCode, String errMsg);
}
MainActivity.class
public class MainActivity extends AppCompatActivity {
public static final String url = "https://gitlab.com/lizhengzhao-x/imagetest/-/raw/master/0.png";
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.id_img);
downloadPicture(url, new MyDataCallback() {
@Override
public void loadSuccess(Drawable drawable) {
imageView.setBackground(drawable);
}
@Override
public void loadFailed(String errCode, String errMsg) {
Toast.makeText(getApplicationContext(), errMsg + " ( " + errCode + " )", Toast.LENGTH_SHORT).show();
}
});
}
private void downloadPicture(String url, final MyDataCallback dataCallback) {
Uri uri = Uri.parse(url);
Glide.with(this)
.load(uri)
.signature(new ObjectKey(System.currentTimeMillis()))
.skipMemoryCache(true)
.into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
dataCallback.loadSuccess(resource);
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
super.onLoadFailed(errorDrawable);
dataCallback.loadFailed("404", "load picture failed !");
}
});
}
}