我正在从firebase数据库中检索图像并在图像视图中设置它。 我使用以下代码。
mStorageRef.child("Book_Photos/"+firstBook.bid).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Toast.makeText(getApplicationContext(), "GET IMAGE SUCCESSFUL",Toast.LENGTH_LONG).show();
if(uri==null){
Toast.makeText(getApplicationContext(), "URI IS NULL",Toast.LENGTH_LONG).show();
}
try {
ImageView image2;
image2=(ImageView)findViewById(R.id.imageView);
image2.setImageURI(null);
image2.setImageURI(uri);
}
catch (Exception e){
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(getApplicationContext(), "GET IMAGE FAILED",Toast.LENGTH_LONG).show();
// Handle any errors
}
});
我正在检索的图像未被设置。 &#34; GET IMAGE SUCCESSFUL&#34;吐司的作品。 &#34; URI是空的&#34;吐司不起作用。 命令image2.setImageURI(null)有效。
只是image2.setImageURI(uri)无效。
答案 0 :(得分:8)
您无法将图像从互联网直接加载到ImageView。但您可以使用Glide之类的库来执行此操作。要将Glide添加到您的应用中,您需要将此行添加到您的家属:
implementation 'com.github.bumptech.glide:glide:4.8.0'
加载你的形象:
Glide
.with(getContext())
.load(uri) // the uri you got from Firebase
.centerCrop()
.into(image2); //Your imageView variable
答案 1 :(得分:2)
您也可以使用Picasso库。将其添加到您的gradle
编译'com.squareup.picasso:picasso:2.5.2'
然后加载图片,
Picasso.with(YourActivity.this).load(URI).into(图像2);