2011-06-07 6 views
0

ビットマップイメージをListViewのImageViewに入れたいと思います。私は画像をURLからビットマップ画像に変更しました。私は10の画像があり、私はListViewの各項目に画像を置く必要があります。レイジーアダプター以外の方法はありますか?前もって感謝します!!!ビットマップイメージをリストビューのイメージビューに入れる

これはあなたがGreenDroidライブラリをチェックアウトする場合があります私のコード

public class Propertylist extends ListActivity { 

    String proptype; 
    String prop; 
    String estimate; 
    String photo; 
    String get; 
    String[] data; 
    TextView text; 
    URL aURL; 
    InputStream is = null; 
    String result = ""; 
    JSONObject jArray = null; 
    //Hashtable<String,Bitmap> imagemap; 
    private ArrayList<NameValuePair> nameValuePairs; 
    private LayoutInflater inflater; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main3); 
     text = (TextView) findViewById(R.id.text); 
     Toast.makeText(getApplicationContext(), "Displaying popertylist for zipcode "+get, Toast.LENGTH_LONG).show(); 

     ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 
     //ArrayList<Hashtable<String, Bitmap>> mylist1 = new ArrayList<Hashtable<String, Bitmap>>(); 

     Bundle bundle = this.getIntent().getExtras(); 
     get = bundle.getString("name"); 

     try{ 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new HttpPost("http://www.propertyhookup.com/mobile/propertylist.php"); 
       nameValuePairs = new ArrayList<NameValuePair>(1); 
       nameValuePairs.add(new BasicNameValuePair("zipcode", get.trim())); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       is = entity.getContent(); 

     }catch(Exception e){ 
       Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
     } 

     //convert response to string 
     try{ 
       BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
       StringBuilder sb = new StringBuilder(); 
       String line = null; 
       while ((line = reader.readLine()) != null) { 
         sb.append(line + "\n"); 
       } 
       is.close(); 
       result=sb.toString(); 
     }catch(Exception e){ 
       Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
     if(result.length()<= 7){ 
      Toast.makeText(getApplicationContext(), "No properties for this zipcode or check your zipcode ", Toast.LENGTH_LONG).show(); 
      text.setText("No properties for this zipcode or check your zipcode"); 
     } 
     else{ 
     try{ 

     jArray = new JSONObject(result);    
     }catch(JSONException e){ 
      Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
     } 

     //JSONObject json = JSONfunctions.getJSONfromURL("http://192.168.1.111/propertyhookup.com/mobile/propertylist.php"); 

     try{ 

      JSONArray earthquakes = jArray.getJSONArray("earthquakes"); 

      for(int i=0;i<10;i++){      
       HashMap<String, String> map = new HashMap<String, String>(); 

       //imagemap = new Hashtable<String, Bitmap>(); 

       JSONObject e = earthquakes.getJSONObject(i); 



       if(e.getString("property_type").contains("1")) { 
        proptype ="Single Family Home"; 
       }else if(e.getString("property_type").contains("2")) { 
        proptype="Condo"; 
       }else if(e.getString("property_type").contains("3")) { 
        proptype="Townhouse"; 
       } 
       if(e.getString("estimated_price").contains("0")) { 
        estimate = "Not Enough Market Value"; 
        //estimat = (TextView) findViewById(R.id.estimat); 
        //estimat.setTextColor(Color.rgb(0, 0, 23)); 
       }else { 
        estimate = "$"+e.getString("estimated_price"); 
       } 
       photo = e.getString("photo1"); 


       map.put("id", String.valueOf(i)); 
       map.put("percent", e.getString("percentage_depreciation_value")+"%"); 
       map.put("propertyid", "#"+e.getString("property_id")+" "); 
       map.put("cityname",e.getString("city_name")+","); 
       map.put("statecode",e.getString("state_code")); 
       map.put("propertytype","| "+ proptype); 
       map.put("footage", e.getString("house_square_footage")+" Sq.Ft"); 
       map.put("bathroom", "| "+e.getString("bathrooms")+" Bath, "); 
       map.put("bedroom", e.getString("bathrooms")+" Bedrooms"); 
       map.put("price", "List Price: $"+e.getString("property_price")); 
       map.put("estimated", "Base Market Value: "+estimate); 
       //map.put("photos",photo); 
       mylist.add(map); 


      }  
     }catch(JSONException e)  { 
      Toast.makeText(getApplicationContext(),e.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
     try 
     { 
       aURL = new URL(photo); 
     } 
     catch (MalformedURLException e1) 
     { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
     } 
     URLConnection conn = null; 
     try 
     { 
       conn = aURL.openConnection(); 
     } 
     catch (IOException e1) 
     { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
     } 
     try 
     { 
       conn.connect(); 
     } 
     catch (IOException e1) 
     { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
     } 
     InputStream is = null; 
     try 
     { 
       is = conn.getInputStream(); 
     } 
     catch (IOException e1) 
     { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
     } 
     BufferedInputStream bis = new 
BufferedInputStream(is,8*1024); 
     Bitmap bm = BitmapFactory.decodeStream(bis); 
     //imagemap.put("im",bm); 
     // mylist1.add(imagemap); 


     ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main4, 
         new String[] { "percent","propertyid", "cityname", "statecode", "propertytype", "footage", "bathroom", "bedroom", "price", "estimated" }, 
         new int[] { R.id.percent, R.id.property_id, R.id.city_name, R.id.state_code, R.id.prop_type, R.id.foot, R.id.bath, R.id.bed, R.id.list, R.id.estimat}); 

     setListAdapter(adapter); 



     final ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 
     lv.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    
       @SuppressWarnings("unchecked") 
       HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);     
       Toast.makeText(Propertylist.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_SHORT).show(); 

      } 
     }); 

     } 
    } 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.icon:  //Toast.makeText(this, "You pressed the icon!", Toast.LENGTH_LONG).show(); 
      displaylogin(); 
           break; 
      case R.id.text:  //Toast.makeText(this, "You pressed the text!", Toast.LENGTH_LONG).show(); 
      displayproperty(); 
           break; 
      // case R.id.icontext: Toast.makeText(this, "You pressed the icon and text!", Toast.LENGTH_LONG).show(); 
      //     break; 
     } 
     return true; 
    } 
    private void displaylogin() { 
     startActivity(new Intent(this,Changezip.class)); 
     finish(); 
    } 
    private void displayproperty() { 
     startActivity(new Intent(this,property.class)); 
    } 

} 

答えて

4

このlinkをご覧ください。それがあなたを助けることを願っています。

+1

私はすでにテキストフィールドを読み込むために単純なアダプタを使用しました。今私は同じリストビューで画像をロードしたい。 2番目のステップでイメージビューでイメージをロードする方法は? –

2

です。それはこのようなことを簡単にします。

前回の4つの質問に対して回答を受け取りましたが、いずれも回答を受け付けていないことにご注意ください。このコミュニティは、回答を受け入れる人々に基づいて機能し、あなたが有用であると回答した回答を受け入れない場合、人々があなたに答えるのを止めることがあります。

関連する問題