2016-06-24 15 views
0

私のプロジェクトで画像を読み込むためにGlideを使用しています。私は、デバイスからすべてのイメージを表示しているカスタムギャラリー活動を持っています。問題は、Glideが電話機に存在するpng画像を表示していないことです。その代わりに、私はフォールバックとして設定したエラーイメージを表示しています。私は、何が悪かったのかを把握することができません:Android Glideがpng画像を表示しない

これは、照会するための私のコードです:

Cursor imagecursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy); 

     if (imagecursor != null && imagecursor.getCount() > 0) { 

      while (imagecursor.moveToNext()) { 
       CustomGalleryModel item = new CustomGalleryModel(); 
       int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA); 
       item.sdcardPath = imagecursor.getString(dataColumnIndex); 
       galleryList.add(item); 
      } 
     } 

そして、私のアダプタで:

File f = new File(data.get(position).sdcardPath); 
    Uri uri = Uri.fromFile(f); 
    Glide.with(context).load(uri).placeholder(R.drawable.no_media) 
      .error(R.drawable.car_bg).into(holder.imgQueue); 

次のようにPNG画像のパスは次のとおりです。

file:///storage/emulated/0/Pictures/Screenshots/Screenshot_20160622-160641.png 

更新

問題画像がScreenshotsフォルダにある場合、グライドはエラー画像を表示しています。同じ画像を別の場所でsdカード内にコピーすると、正しく表示されます。

+0

あなたではなく、ファイルパスよりも、直接ちょうどメディアストアウリを使用してみましたか?失敗した画像へのリンクを付けることはできますか?スタックトレースを添付できますか? –

答えて

0

はグライド文で次のように変更を行うようにしてください:

.load(new File(pictureUri.getPath())) // Uri of the picture 
+0

私はすでにsdカードパスからファイルを作成していて、uriをロードしています。再びパスを戻すことは意味をなさないでしょう。 Glideのすべてのオプションを試しました。画像がScreenshotsフォルダにある場合にGlideがエラー画像を表示している場合の実際の問題です。他の場所でsdカード内の同じイメージをコピーする場合。その後、適切に表示されます。なぜ起きているのか分かりません – Nitish

+0

omg、それは神秘的です。私はこれがあなたの携帯電話によって引き起こされると思います。ときどき私の携帯電話はまだこのような状況に陥ることがありますが、私はスクリーンショットやカメラからの写真を撮っていますが、数時間または一日もかかるまでギャラリーにはすぐに表示されませんでした。 – alway5dotcom

+0

@Nitishあなたは当時の問題を理解しましたか?私は問題が特定のフォルダではなくpng画像であると思います。 – Droidwala

関連する問題