В AsyncTask я получаю json с некоторыми значениями в виде изображений. Ниже приведен пример моего JSONКак загрузить изображения из html в AsyncTask
{
"text": "some text",
"html1": "Hi, check out my fb profile picture at <img src = 'http:\/\/abc.com/image1.png'\/> ",
"html2": "Hi, check out my whatsapp profile picture at <img src = 'http:\/\/abc.com\/image1.png'\/> ",
.
.
.
}
В асинхронной задачи postExecute метод, который я
((TextView) findViewById(R.id.html1)).setText(Html.fromHtml((String) jsonObj.get("html1"), new ImageGetter()
{
@Override
public Drawable getDrawable(String source)
{
return loadImage(source);
}
}, null));
((TextView) findViewById(R.id.html2)).setText(Html.fromHtml((String) jsonObj.get("html2"), new ImageGetter()
{
@Override
public Drawable getDrawable(String source)
{
return loadImage(source);
}
}, null));
и мой метод LoadImage выглядит, как показано ниже
private Drawable loadImage(String source)
{
Drawable drawable = null;
URL sourceURL;
try
{
sourceURL = new URL(source);
URLConnection urlConnection = sourceURL.openConnection();
urlConnection.connect();
InputStream inputStream = urlConnection.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
Bitmap bm = BitmapFactory.decodeStream(bufferedInputStream);
// convert Bitmap to Drawable
drawable = new BitmapDrawable(getResources(), bm);
drawable.setBounds(0, 0, bm.getWidth(), bm.getHeight());
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return drawable;
}
Я думаю, что код хватай, но я я получаю android.os.NetworkOnMainThreadException
Я добавил разрешения Интернет в Manifest.xml
пожалуйста, вы можете отлаживать к конкретной строке, когда аварии код? – ymz
@ urlConnection.connect(); –
Я не уверен, но, вероятно, вы не должны работать с сетью в методе onPostExecute. И единственный метод в AsyncTask, где вы можете это сделать, - метод doInBackground. Это может вызвать android.os.NetworkOnMainThreadException. – antonpp