어쨌든 나는 그것을 얻지 못하는 것 같습니다. 8-} 데이터베이스에서 JSON 데이터를 요청하는 액티비티가 있는데 반환 결과에는 이미지 URL이 포함됩니다. 내 응용 프로그램은 Android v2.x에서 제대로 작동하지만, 우연히 발견해야하는 것처럼 Android 4에로드되지 않은 이미지를 포함하여 이상한 동작이 있습니다 (호환성이라고하지는 않습니까?) 이제는 그 수정은 안드로이드 2.x 시스템에서 다시 기능을 엉망으로 만들지 않기를 바란다.NetworkOnMainThreadException load image how
기본적으로, 활동이 웹에있는 모든 수많은 예에 설명 된대로 (내가 필수적인 부분에 아래 코드를 트림 등 확인 대부분의 오류를 제거) 작동 : 이제
new GetProductDetails().execute();
(..)
class GetProductDetails extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
(..)
}
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("pid", pid));
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(
getString(R.string.urlProductDetails), "GET",
params);
try {
JSONArray prodObj = json.getJSONArray(Consts.PRODS);
pinfo = prodObj.getJSONObject(0);
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
// Storing each json item in variable
try {
String s = "";
txtvname = (TextView) findViewById(R.id.txtpname);
txtshortinfo = (TextView) findViewById(R.id.txtshortinfo);
(… populating activity window with json data …)
}
});
// update image:
String imgURL;
try {
imgURL = pinfo.getString("pic_url");
if (imgURL.length() > 1) {
imgURL = getString(R.string.urlPicsFull) + imgURL;
ImageView imgProd = (ImageView) findViewById(R.id.imgProduct);
Drawable drawable = LoadImageFromWebOperations(imgURL);
imgProd.setImageDrawable(drawable);
}
} catch (JSONException e) {
e.printStackTrace();
}
pDialog.dismiss();
}
private Drawable LoadImageFromWebOperations(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
} catch (Exception e) {
System.out.println("Could not load " + url + ", Exc=" + e);
return null;
}
}
을이있다 android.os.NetworkOnMainThreadException 이미지가로드 될 때 발생합니다.