2016-06-16 18 views
-1

私のアプリはラズベリーから画像をダウンロードできます。それはうまく動作します。これはコードです保存せずに画像を表示

public void downloadFile() { 

     FTPClient ftpClient = new FTPClient(); 
     try { 

      ftpClient.connect("******"); 
      ftpClient.login("****","*****"); 
      ftpClient.enterLocalPassiveMode(); 
      ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 


      String remoteFile1; 

      File downloadFile1 = new File(filePath); 


      OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1)); 
      boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1); 
      outputStream1.close(); 

      if (success) { 
       System.out.println("File #1 has been downloaded successfully."); 
      } else { 
       System.out.println("Error in downloading file !"); 
      } 

      boolean logout = ftpClient.logout(); 
      if (logout) { 
       System.out.println("Connection close..."); 
      } 

     } catch (IOException ex) { 
      System.out.println("Error: " + ex.getMessage()); 
      ex.printStackTrace(); 
     } finally { 
      try { 
       ftpClient.disconnect(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
    } 

私はそれを表示することができますので、私のアプリのユーザーが見ることができます。イメージの読み込みでは、このコードを使用してImも動作します。

private void loadImage(String imagePath) { 
     Uri imageUri; 
     String fullImagePath; 
     Drawable image; 
     ImageView imageDisplay; 

     imageUri = Uri.parse(imagePath); 
     fullImagePath = imageUri.getPath(); 
     image = Drawable.createFromPath(fullImagePath); 

     imageDisplay=(ImageView) findViewById(R.id.imageDisplay); 

     imageDisplay.setImageDrawable(image); 
    } 

今、画像をギャラリーにダウンロードせずに表示したいと考えています。しかし、私はこれを行う方法を理解することはできません。 誰かが私を助けてくれますか?

+0

*ダウンロードしないで画像を表示したい(リモート) – Selvin

+0

どうしてですか?あなたはこのイメージを保存することは自由であるか、または –

+0

をダウンロードすることはできません!=保存...はい、あなたは保存せずにメモリに画像を保存できます(遅かれ早かれメモリ問題を引き起こすでしょう)... – Selvin

答えて

0

イメージをダウンロードせずに表示することはできません。実際に何か「遠隔」を見ると、それをダウンロードしています。

イメージが大きすぎてダウンロードしたくないということを意味する場合は、ユーザーのための仕組みが必要です。 1つの可能な解決策は、サーバー側でサムネイル(縮小画像)を作成し、そのプレビューをユーザーに表示することです。その後、ユーザーがギャラリーにダウンロードしたい場合、元のイメージを取得できます。

0

イメージをダウンロードせずに表示する場合は、イメージホスティングサイトなどにアップロードする必要があります。そのため、FTPクライアント全体ではなくリンクを使用するだけです。

基本的には、画像を保存するためのコードを使用しています。そして、イメージをロードするために使用しているものがDrawableからデータをフェッチします。あなたは間違った道にいる。

+0

* ...まあ、 "link"は魔法のようなものなので、もしあなたが "link"を使うならば、データはダウンロードせずにリモートサーバからデバイス上に生成されます(ああ待って、 "link"は 'ftp:// server/file_path/file')... *画像を保存するためのコードを使用しています* ...だから、出力ストリームを入力ストリームにパイプして保存せずにBitmap.decodeStreamに渡すことはできません – Selvin

関連する問題