2016-09-06 7 views
0

Firebase Storageにイメージを正常にアップロードしました。私はURIを持っており、グライドを使って、画像をImageViewに表示することができます。私は私のSDカードにこの画像を保存したいが、私はここでは例外Firebase StorageからイメージをダウンロードしてSDカードに保存する際の問題

java.io.FileNotFoundException: No content provider: 
https://firebasestorage.googleapis.com/.. 

を取得しています:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_pic); 

     Intent intent = getIntent(); 
     String str = intent.getStringExtra("pic"); 
     Uri myUri = Uri.parse(str); 
     try { 
      Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), myUri); 
      SaveImage(bitmap); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     ImageView imageView = (ImageView)findViewById(R.id.displayPic); 

     Glide.with(getApplicationContext()).load(myUri) 
       .thumbnail(0.5f) 
       .crossFade() 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(imageView); 
    } 
    private void SaveImage(Bitmap finalBitmap) { 

     String root = Environment.getExternalStorageDirectory().toString(); 
     File myDir = new File(root + "/saved_images"); 
     myDir.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = "Image-"+ n +".jpg"; 
     File file = new File (myDir, fname); 
     if (file.exists()) file.delete(); 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
      out.flush(); 
      out.close(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

URIは次のようになります。ここに私の完全なコードがされ

try { 
      Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), myUri); 
      SaveImage(bitmap); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

これは:

https://firebasestorage.googleapis.com/example.appspot.com/o/pics%2Fc8742c7e-8f59-4ba3-bf6f-12aadfdf4a.jpg?alt=media&token=9bsdf67d-f623-4bcf-95d7-5ed97ecf1a21 
+0

「私はウルがあります。あなたは私たちにそれがどのように見えるのかを示していません。あなたはそれが無関係だと思いますか? – greenapps

+0

@greenapps、私は私の質問を編集しました。 – Shubh

+0

まあ、あなたは例外メッセージをあなた自身が最初にコメントすることができます。それはあなたに何を伝えますか? – greenapps

答えて

1

グライドの使用これを試してみてください。 mDownloadUrlがあなたの画像URLです

Bitmap bitmap= Glide. 
     with(this). 
     load(mDownloadUrl). 
     asBitmap(). 
     into(100, 100). // Width and height 
     get(); 

SaveImage(bitmap); 

+0

このコードをバックグラウンドスレッドに追加します。 –

0

Firebase Stor年齢には登録されたコンテンツリゾルバがありません。ダウンロードURLは、実際にはグライドにフィードできるプレーンなバニラhttps:// URLです。

このURLを直接ダウンロードすることもできます。このquestionをチェックしてください。

downloadUri.toString()を呼び出して、ダウンロードURLを文字列形式で取得するだけです。

関連する問題