Это заставило меня кусать ногти.Я проанализировал URL-адреса изображений из XML в массив. Я отображаю изображения в виде таблицы вместе с текстом.Я использую следующий код в действии для отображения изображения:
Растровое изображение bm = DownloadImage (piciterator.next (). ToString ());
icon.setImageBitmap (bm);
Здесь piciterator выполняет итерацию массива, содержащего URL-адреса.
Вот функция DownloadImage:
частный битмэп DownloadImage (String URL)
{
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return bitmap;
}
И это функция OpenHttpConnection:
private InputStream OpenHttpConnection (String urlString) выдает IOException
{
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try{
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
}
catch (Exception ex)
{
throw new IOException("Error connecting");
}
return in;
}
При отладке я могу получить некоторые изображения в браузере.Однако после 23-го элемента в arraylist изображение открывается в браузере, но приложение падает на шаг:
bitmap = BitmapFactory.decodeStream (in);
На изображении при просмотре наБраузер сравнительно меньше других, но не намного меньше.
Приложение даже не пытается попробовать catch.Это просто вылетает.
Помощь в этом отношении будет действительно ценной.