亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從 Firebase 下載照片 - 空白 ImageView

無法從 Firebase 下載照片 - 空白 ImageView

翻翻過去那場雪 2022-10-07 19:33:12
我有 GridView 適配器,我想通過照片的 URL 從 Firebase 存儲下載照片。當我將 URL 傳遞給 GridViewAdapter 時,照片是空白的。有空間,但沒有圖片。就像透明圖片一樣。如果我傳遞在 Google 中找到的圖像 URL,它可以工作,但它不適用于 Firebase Storage 的 URL。怎么了?這就是我嘗試從 Firebase 存儲獲取 URL 的方式 我正在獲取包含所有 URL 的節點的 DataSnapshotdatabaseReference.addValueEventListener(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                photos.clear();                for(DataSnapshot ds: dataSnapshot.getChildren()){                    String photoURL = ds.getValue(String.class);                    try {                        photos.add(photoURL);                    }catch (NullPointerException e) {                    }                }                gridViewAdapter = new GridViewAdapter(getContext(), photos);                gridView.setAdapter(gridViewAdapter);            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {                }        });我的 GridViewAdapter.class,getView 方法@Override    public View getView(int position, View convertView, ViewGroup parent) {        View gridView = convertView;        if(convertView == null){            inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);            gridView = inflater.inflate(R.layout.image_item,null);        }        ImageView imageView = gridView.findViewById(R.id.image_from_photo_album);        Picasso.with(context).load(photos.get(position)).into(imageView);        return imageView;    }沒有 Firebase 存儲 URL 的 ScreenView:帶有 Firebase 存儲 URL 的 ScreenView:
查看完整描述

4 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

問題是,我在負責顯示圖像的 ImageView 中的 layout_width 和 layout_height 上設置了 wrap_content 屬性。早些時候這張圖片的高度非常非常大(我不知道為什么)并且它導致了這個問題。

注意:來自 Google 的 GridView 圖像的 url 分辨率為 800x450 可以完美運行,問題僅在于 Firebase 存儲中的照片。

問題已部分解決,因為如果我設置固定大小的圖像,它會顯示圖像但我仍然有一些問題......例如 GridView 有時會將兩個圖像分層在同一位置,或者 GridView 的第一個元素沒有加載.


查看完整回答
反對 回復 2022-10-07
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

嘗試更改Picasso.with(context).load(photos.get(position)).into(imageView)為: String url = photos.get(position);  Picasso.with(context).load(url).into(imageView)

另外:也許您來自 Firebase 的照片 url 始終為 Null,您是否調試過它?


查看完整回答
反對 回復 2022-10-07
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

如果您的 URL 正確,ImageView 可以正確渲染另一張圖像,那么 Picasso 似乎產生了一些可能的問題:

  • 您在緩存或下載器方面遇到問題。請參閱此主題如何在 Picasso 中使用磁盤緩存?也許它可以幫助你。

  • 下載您的 URL 完成但出現錯誤。嘗試將錯誤處理添加到畢加索鏈

Picasso.with(context)
    .load(photos.get(position))
    .error(R.drawable.error_image)
    .placeholder(R.mipmap.ic_launcher)
    .into(imageView);

更多細節在這里


查看完整回答
反對 回復 2022-10-07
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

這是非常廣泛的。當您將 url “傳遞”到您的 GridViewAdapter 時,您如何加載圖像?也許上傳您的代碼,以便我們為您提供幫助。



查看完整回答
反對 回復 2022-10-07
  • 4 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號