Можно ли использовать метод BitmapFactory.decodeFile для декодирования изображения из местоположения http?

Я хотел бы узнать, можно ли использовать метод BitmapFactory.decodeFile для декодирования изображения из местоположения http?

Напр.

ImageView imageview = new ImageView(context); Bitmap bmp = BitmapFactory.decodeFile("http:///test/abc.jpg"); imageview.setImageBitmap(bmp); 

Но bmp всегда возвращает null.

Есть ли другой способ достичь этого сценария, где у меня есть набор изображений на моем сервере ПК, и я загружаю изображения в приложение галереи через xml?

Благодаря,
сен

Используйте decodeStream и передайте входной stream URL вместо этого.

Вот пример:

 Bitmap bmp = BitmapFactory.decodeStream(new java.net.URL(url).openStream()) 

@Amir & @Sankar: Спасибо за ваши ценные предложения.

Я решил эту проблему, выполнив следующий fragment кода:

 ImageView iv = new ImageView(context); try{ String url1 = "http:///test/abc.jpg"; URL ulrn = new URL(url1); HttpURLConnection con = (HttpURLConnection)ulrn.openConnection(); InputStream is = con.getInputStream(); Bitmap bmp = BitmapFactory.decodeStream(is); if (null != bmp) iv.setImageBitmap(bmp); else System.out.println("The Bitmap is NULL"); } catch(Exception e) { } 

Благодаря,
сен

 String urldisplay="http://www.google.com/";//sample url Log.d("url_dispaly",urldisplay); try{ InputStream in = new java.net.URL(urldisplay).openStream(); Bitmap mIcon11 = BitmapFactory.decodeStream(new SanInputStream(in)); } catch(Exception e){} 

Создать имя classа SanInputStream

 public class SanInputStream extends FilterInputStream { public SanInputStream(InputStream in) { super(in); } public long skip(long n) throws IOException { long m = 0L; while (m < n) { long _m = in.skip(nm); if (_m == 0L) break; m += _m; } return m; } } 

Если я не ошибаюсь, fragment кода @Sen должен возвращать значение null в случае файла .BMP, и logcat должен регистрироваться:

 skia decoder->decode returned false 

Если что-то подобное происходит, попробуйте использовать этот код (работает также в случае ввода растрового изображения):

 HttpGet httpRequest = null; try { httpRequest = new HttpGet(url.toURI()); } catch (URISyntaxException e) { e.printStackTrace(); } HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); bmp = BitmapFactory.decodeStream(instream); 

Источник

// Создаем объект для подclassа AsyncTask

 GetXMLTask task = new GetXMLTask(); 

// Выполнение задачи

 task.execute(new String[] { "ImageURL" }); 

// затем в classе Asyntask назначьте изображение для просмотра изображения, чтобы избежать android.os.NetworkOnMainThreadException

 private class GetXMLTask extends AsyncTask { @Override protected Bitmap doInBackground(String... urls) { Bitmap map = null; for (String url : urls) { map = downloadImage(url); } return map; } // Sets the Bitmap returned by doInBackground @Override protected void onPostExecute(Bitmap result) { imageView.setImageBitmap(result); } // Creates Bitmap from InputStream and returns it private Bitmap downloadImage(String url) { Bitmap bitmap = null; InputStream stream = null; BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inSampleSize = 1; try { stream = getHttpConnection(url); bitmap = BitmapFactory. decodeStream(stream, null, bmOptions); stream.close(); } catch (IOException e1) { e1.printStackTrace(); } return bitmap; } // Makes HttpURLConnection and returns InputStream private InputStream getHttpConnection(String urlString) throws IOException { InputStream stream = null; URL url = new URL(urlString); URLConnection connection = url.openConnection(); try { HttpURLConnection httpConnection = (HttpURLConnection) connection; httpConnection.setRequestMethod("GET"); httpConnection.connect(); if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) { stream = httpConnection.getInputStream(); } } catch (Exception ex) { ex.printStackTrace(); } return stream; } } 
Interesting Posts

Третий конфликт прототипа / jQuery Chrome

проверьте, отображается ли элемент: нет или блокируется при щелчке. Jquery

NSTimeInterval для NSDate

Обновление Windows в Windows Vista

Не удалось разрешить модуль «AccessibilityInfo» при попытке создать пакет выпуска

Переход на ubuntu 13.04 с 12.04 с помощью iso image

Как я повторяю метод каждые 10 минут после нажатия кнопки и завершения ее на другой кнопке

Вставить веб-браузер в Java-приложение

Когда переходить от безопасности, управляемой контейнером, к альтернативам, таким как Apache Shiro, Spring Security?

Log4j, настройка веб-приложения для использования относительного пути

Может ли BitLocker в Windows 7 или 8 уведомлять сервера или администратора о сбоях паролей?

Как импортировать зависимость Maven в Android Studio / IntelliJ?

Есть ли браузер, эквивалентный ClearAuthenticationCache IE?

Команда импорта ImageMagick дает ошибку в окнах?

Нужно форматировать даты в динамически построенных WPF DataGrid

Давайте будем гением компьютера.