sil*_*oxA 2 android firebase android-volley android-glide firebase-storage
我知道解决方案存在于人们说使用Glide或Picasso等图像缓存工具的地方,你可以显示图像.但我尝试过同样的事情,但是不行.
以下是我将文件上传到Firebase存储的实现
if (uri != null) {
//upload to storage
StorageReference riversRef = imagesRef.child(uri.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(uri);
// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
Snackbar.make(coordinatorLayout, "Unable to process your request. Please try again.", Snackbar.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl();
if (downloadUrl != null) {
Date date = new Date();
Locale locale = new Locale("en", "IN");
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy /h:mm a", locale);
String formattedDate = sdf.format(date);
HashMap<String, String> map = new HashMap<>();
map.put("isXRead", String.valueOf(false));
map.put("isYRead", String.valueOf(true));
map.put("imgUrl", String.valueOf(downloadUrl));
map.put("timestamp", formattedDate);
map.put("user", "X");
ref.push().setValue(map);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
图像上传得很好并返回网址,类似于
https://firebasestorage.googleapis.com/v0/b/private.appspot.com/o/Messenger_images%2F14076?alt=media&token=2164ec58-55c2-4b03-b97a-ebfd36e66593
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用Volley显示图像的方法:
ImageRequest ir = new ImageRequest(message.getImgUrl(), new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
// callback
// new GlideOperations(context, img).glideMessenger(response);
img.setImageBitmap(response);
}
}, 100, 100, null, null);
//ir.setShouldCache(false);
AppController.getInstance().addToRequestQueue(ir);
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用Glide显示图像的方法:
try {
Glide.with(mContext)
.load(object)
.thumbnail(0.5f)
.override(900, 400)
.crossFade(100)
.fitCenter()
.error(R.drawable.wallpaper)
.into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
try {
mImageView.setImageDrawable(resource);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
以上都不适用.感谢任何帮助.
解决方案
好像我遇到了问题ImageView.谢谢你的帮助.
该com.firebaseui:firebase-ui-storage:0.6.0库包括使用Glide加载Firebase存储图像的功能.
// Reference to an image file in Firebase Storage
StorageReference storageReference = ...;
// ImageView in your Activity
ImageView imageView = ...;
// Load the image using Glide
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |