2012-01-02 9 views
0

これはwebserviceのjson形式です:{"result":[{"id": "1"、 "category": "Rumah sakit"、 "hospital.png"}]}Android Apps: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サービスからの画像ではなく、アンドロイドのデフォルトアイコンとして表示される画像です。私はWebサービスでイメージのサイズを変更しようとしていますが、まだ動作していません。

私はそれを解決するために手伝ってください。

ありがとうございます。

答えて

0

ImageViewでイメージを設定しているコード行が見つかりませんでした。 Like img.setImage(YOUR_IMAGE);

関連する問題