注意:是背景图片;不是icon图片。另外,我实际需要使用的是ExpandableListview,不过这两者应该差不多的吧。

解决方案 »

  1.   

    使用adapter时,用map指定多个control和对应的资源drawable, text etc
      

  2.   

    用map指定多个control和对应的资源drawable
      

  3.   

    ArrayList<HashMap<String, Object>> m_data = new ArrayList<HashMap<String, Object>>();for xxx
    {
    HashMap<String, Object> map = new HashMap<String, Object>();
    map.put("background", R.id.drawableBGXXX);
    map.put("text", R.id.stringXXXXX);
    m_data.add(map);
    }
    SimpleAdapter m_adapter= new SimpleAdapter(窗口句柄
         ,m_data //data source
         ,R.layout.XXX
         ,new String[]{"background", "text"}
         ,new int[]{R.id.CONTROLTOSETBACKGROUND, R.id.CONTROLTEXTVIEW});
      

  4.   

    派生自己的Adapter,在GetView中根据Position,利用ImageView加载图片并与你的其他内容组合成一个view或viewGroup或Layout返回,即可。
      

  5.   

    如果你item很多的话  那肯定是很占用内存的吧
      

  6.   

    重写Adapter类,实现自定义的list item
      

  7.   

    谢谢大家,我来试一下。不过,如我上面所说,我真正想实现的是ExpandableListview上面定制背景图片,不知道它的话有什么不同?
      

  8.   


    兄弟,我试了这些代码;似乎并不能真正修改背景图片哎。应该是需要xml文件的吧。真正实现背景绘制的是在xml文件里面。你能不能把xml文件或者整个工程贴上来?多谢了
      

  9.   

    使用adapter时,用map指定多个control和对应的资源drawable
      

  10.   

    自定义adapterpublic View getView(int position, View convertView, ViewGroup parent) {
    View myView = inflater.inflate(R.layout.XXX, null);if(position==1){
    myView.setBackgroundDrawable(R.id.XXX);
    }
    if(osition==2){
    myView.setBackgroundDrawable(R.id.XXX);
    }}
      

  11.   

    楼主我来了。帮你解决了。。这次绝对没问题。。
    package com.pei;import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.ExpandableListView;
    import android.widget.TextView;public class TestExpandableList extends Activity { ExpandableListView expandableList;
    public String[] str1 = { "xxxx好友", "xxxx同学", "xxxxx女人" };
    public String[] str2 = { "xxxx好友", "xxxx同学" }; @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    expandableList = (ExpandableListView) TestExpandableList.this
    .findViewById(R.id.ExpandableListView01);
    expandableList.setAdapter(new TreeViewAdapter(this));
    } public class TreeViewAdapter extends BaseExpandableListAdapter {
    private LayoutInflater inflater;
    private LayoutInflater inflater1; public TreeViewAdapter(Context c) {
    this.inflater = LayoutInflater.from(c);
    this.inflater1 = LayoutInflater.from(c);
    } @Override
    public Object getChild(int groupPosition, int childPosition) { return childPosition; } @Override
    public long getChildId(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return 0;
    } @Override
    public View getChildView(int groupPosition, int childPosition,
    boolean isLastChild, View convertView, ViewGroup parent) {
    View myView = inflater1.inflate(R.layout.cc, null);
    if (groupPosition == 0) {
    myView.setBackgroundResource(R.drawable.icon);
    }
    if (groupPosition == 1) {
    myView.setBackgroundResource(R.drawable.icon);
    }
    TextView textview = (TextView) myView
    .findViewById(R.id.TextView001);
    textview.setText(str2[childPosition]);
    return myView;
    } @Override
    public int getChildrenCount(int groupPosition) {
    // TODO Auto-generated method stub
    return 2;
    } @Override
    public Object getGroup(int groupPosition) {
    // TODO Auto-generated method stub
    return "dd"; } @Override
    public int getGroupCount() {
    // TODO Auto-generated method stub
    return 3;
    } @Override
    public long getGroupId(int groupPosition) {
    // TODO Auto-generated method stub
    return groupPosition;
    } @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
    View convertView, ViewGroup parent) {
    View myView = inflater.inflate(R.layout.dd, null);
    if (groupPosition == 0) {
    myView.setBackgroundResource(R.drawable.icon);
    }
    if (groupPosition == 1) {
    myView.setBackgroundResource(R.drawable.icon);
    }
    if (groupPosition == 2) {
    myView.setBackgroundResource(R.drawable.icon);
    }
    TextView textview = (TextView) myView.findViewById(R.id.TextView01);
    textview.setText(str1[groupPosition]);
    return myView;
    } @Override
    public boolean hasStableIds() {
    // TODO Auto-generated method stub
    return false;
    } @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return false;
    } }
    }
      

  12.   

    看不懂啊 怎么和ListView感觉差那么多呢