2012-01-02 102 views
0

這是來自webservice的json格式:{「result」:[{「id」:「1」,「category」:「Rumah sakit」,「image」:「hospital.png」}]}Android應用程序:如何從web服務獲取圖像以顯示在應用程序中?

這裏的機器人代碼:

公共類ARPublicFacilitiesActivity延伸活動{

public static int PILIHAN = 0; 

private ProgressDialog waitDialog; 
private LinearLayout layout; 

private String JsonKategori = ""; 

private ImageLoader imgLoader; 

public static String image[]; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    this.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    setContentView(R.layout.menudinamis); 

    layout = (LinearLayout) findViewById(R.id.layout); 

    waitDialog = ProgressDialog.show(ARPublicFacilitiesActivity.this, "", 
      "Download category ..."); 
    waitDialog.setIcon(R.drawable.iconarpf); 
    waitDialog.show(); 
    new UnduhCategoryTask().execute(); 

} 

class UnduhCategoryTask extends AsyncTask<String, Void, Void> { 

    protected Void doInBackground(String... arg0) { 
     JsonKategori = HTTPConnection.openUrl(HTTPConnection.host 
       + "category.php"); 
     System.out.println("Data : " + JsonKategori); 
     return null; 
    } 

    protected void onPostExecute(Void result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 
     waitDialog.dismiss(); 
     initButton(); 
    } 
} 

public void initButton() { 

    imgLoader = new ImageLoader(this); 

    // memparsing json 
    try { 
     JSONObject jo = new JSONObject(JsonKategori); 
     JSONArray ja = jo.getJSONArray("result"); 
     int id = 0; 
     image = new String[ja.length()]; 
     LinearLayout ly[] = new LinearLayout[2]; 
     // DrawableManager dm = new DrawableManager(); 
     for (int x = 0; x < ly.length; x++) { 
      ly[x] = new LinearLayout(this); 
      ly[x].setOrientation(LinearLayout.VERTICAL); 
      ly[x].setPadding(5, 5, 5, 5); 
      ly[x].setGravity(Gravity.CENTER_VERTICAL); 
     } 
     for (int x = 0; x < ja.length(); x++) { 
      JSONObject joj = ja.getJSONObject(x); 

      image[x] = joj.getString("image"); 
      ImageView img = new ImageView(this); 
      img.setPadding(5, 5, 5, 2); 
      img.setMinimumHeight(96); 
      img.setMinimumWidth(96); 
      img.setMaxHeight(96); 
      img.setMaxWidth(96); 

      final String nilai = joj.getString("id") + ""; 

      img.setTag(HTTPConnection.urlPicture 
        + joj.getString("image")); 
      imgLoader.DisplayImage(HTTPConnection.urlPicture 
        + joj.getString("image"),this, img); 
      img.setOnClickListener(new OnClickListener() { 

       public void onClick(View arg0) { 
        PILIHAN = Integer.parseInt(nilai); 
        startActivity(new Intent(
          ARPublicFacilitiesActivity.this, MixView.class)); 
       } 
      }); 


      ly[id].addView(img); 
      TextView txt = new TextView(this); 
      txt.setText(joj.getString("category")); 
      txt.setTextColor(Color.GRAY); 
      txt.setGravity(Gravity.CENTER_HORIZONTAL); 
      ly[id].addView(txt); 
      if (ja.length() % 2 == 0) { 
       if (x == ((ja.length()/2) - 1)) { 
        layout.addView(ly[id]); 
        ++id; 
       } 
      } else { 
       if (x == (ja.length()/2)) { 
        layout.addView(ly[id]); 
        ++id; 
       } 
      } 
     } 
     layout.addView(ly[id]); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}當我運行上面這個腳本

,類別名稱和形象是成功的出現。問題是圖像,似乎不是我的圖像從Web服務,但Android默認圖標。我一直試圖在web服務中調整圖像大小,但仍然無法正常工作。

請幫我解決它。

非常感謝。

回答

0

因爲我找不到任何代碼,您在ImageView上設置圖像。 贊 img.setImage(YOUR_IMAGE);

相關問題