2012-03-27 106 views
0

我從服務器使用json數組通過url從mysql數據庫中獲取圖像和數據。我能夠列表查看所有圖像,但我無法將圖像與文字一起顯示。我想我是使用視圖holder.how創建自定義佈局我可以創建我的自定義佈局。使用json在列表視圖中顯示圖像和文本

  enter code here 
     JSONArray json = jArray.getJSONArray("names"); 
     list=(ListView)findViewById(R.id.list); 
     adapter=new ImageAdapter(this, json); 
     list.setAdapter(adapter); 

     ImageAdapter.java 
    public class ImageAdapter extends BaseAdapter { 
String qrimage; 
Bitmap bmp; 
private static LayoutInflater inflater = null; 

private ImageView[] mImages; 
String[] itemimage; 
TextView[] tv; 
String itemname; 
HashMap<String, String> map = new HashMap<String, String>(); 

public ImageAdapter(Context context, JSONArray imageArrayJson) { 
    this.mImages = new ImageView[imageArrayJson.length()]; 

    try { 


     for (int i = 0; i < imageArrayJson.length(); i++) { 
      JSONObject image = imageArrayJson.getJSONObject(i); 
      qrimage = image.getString("itemimage"); 
      itemname = image.getString("itemname"); 
      map.put("itemname", image.getString("itemname")); 
      System.out.println(itemname); 

      byte[] qrimageBytes = Base64.decode(qrimage.getBytes()); 

      bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0, 
        qrimageBytes.length); 
      int width=100; 
      int height=100; 
      Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true); 




      mImages[i] = new ImageView(context); 
      mImages[i].setImageBitmap(resizedbitmap); 


      mImages[i].setScaleType(ImageView.ScaleType.FIT_START); 
      tv[i].setText(itemname); 
     } 

    } catch (Exception e) { 
     // TODO: handle exception 
    } 
} 

public int getCount() { 
    return mImages.length; 
} 


public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
     return mImages[position]; 
} 
    } 
     i can create one layout 
    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ImageView 
    android:id="@+id/image" 
    android:layout_width="50dip" 
    android:layout_height="50dip" android:src="@drawable/stub"   
     android:scaleType="centerCrop"/> 
    <TextView 
    android:id="@+id/text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" android:textSize="20dip"  
     android:layout_marginLeft="10dip"/> 
    </LinearLayout> 

上述圖像追加listview.xml和文字也與listview.xml 我想顯示在列表視圖圖像和名稱追加...請任何人能幫助我。

回答

0

使用適配器這樣的,採取一切文本內容和位圖到數組調用適配器

class NamesAdapter extends BaseAdapter{ 

//  @Override 
     public int getCount() { 
     // TODO Auto-generated method stub 
     return mImages.length; 
     } 

//  @Override 
     public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return null; 
     } 

//  @Override 
     public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return 0; 
     } 

//  @Override 
     public View getView(int pos, View convertView, ViewGroup parent) { 
     View row=getLayoutInflater().inflate(R.layout.imagetext,null); 
     TextView text=(TextView)row.findViewById(R.id.text); 
       ImageView image=(ImnageView)row.findViewById(R.id.image); 

     name.setText(text[pos]); 
       image.setImageBitmap(resizedbitmap[pos]); 
     return row; 
     } 

     } 
+0

在getlayoutinflater是錯誤就說明你想這樣我怎麼能解決這個錯誤 – Vinoth 2012-03-27 07:21:19

+0

請先生我等待UR答覆 – Vinoth 2012-03-27 07:33:38

+0

我可以main.java文件先生將 – Vinoth 2012-03-27 07:34:27

相關問題