2016-06-16 3 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

Вы не можете изобразить изображение, не загружая его. Фактически, когда вы видите что-то «удаленно», вы его загружаете.

Если вы имеете в виду, что изображение слишком велико, и вы не хотите его загружать, но хотите, чтобы механизм для пользователя мог его просматривать. Одним из возможных решений является создание миниатюры (уменьшенное изображение) на стороне сервера и показ этого «предварительного просмотра» пользователю. Затем, если пользователь хочет загрузить его в галерею, вы можете получить исходное изображение.

0

Если вы хотите отобразить изображение без его загрузки, оно должно быть загружено на сайт для размещения изображений или аналогичным, поэтому вы просто будете использовать ссылку, а не весь FTP-клиент.

В принципе, вы используете код, предназначенный для сохранения изображения. И тот, который вы используете для загрузки изображений, извлекает данные из Drawable. Таким образом, вы ошибаетесь.

+0

*, поэтому вы просто будете использовать ссылку * ... ну, «ссылка» - это волшебная штука, поэтому, если вы будете использовать «ссылку», данные будут появляться на устройстве с удаленного сервера без загрузки (о, подождите, «ссылка» также может выглядеть как «ftp: // server/file_path/file') ... * вы используете код, предназначенный для сохранения изображения * ... поэтому он не может вывести выходной поток во входной поток и передать Bitmap.decodeStream с ним без сохранения – Selvin

Смежные вопросы