将位图图像放入listview的图像视图中

时间:2011-06-07 10:52:32

标签: android imageview android-lazyadapter

我想将位图图像放入ListView的ImageView中。我将图像从url更改为位图图像。我有10个图像,我必须将图像放在ListView的每个项目中。有什么方法除了懒惰适配器??在此先感谢!!!

这是我的代码

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));
    }

}

2 个答案:

答案 0 :(得分:4)

请查看此link。希望它可以帮助你。

答案 1 :(得分:2)

您可能想查看GreenDroid库;它使这样的事情变得微不足道。

请注意,您已经询问了之前收到答案的4个问题,但您尚未接受任何答案。这个社区的功能基于接受答案的人,如果你没有开始接受你认为有用的答案,你可能会发现人们不再回答你。