GridList를 정의해 사용하고 있는데 리스트에 있는 이미지뷰에 리소스를 사용해서 이미지를 올리면 제대로 올라가는데

비트맵을 올려주면 뿌려주질 못하고 있습니다...

리스트에 뷰가 좀 여러개 올라가 있는지라 리스트 어댑터가 좀 어지럽습니다.

public ImportGridItem(Context context, int textViewResourceId, ArrayList<ImportData> _items) {
  super(context, textViewResourceId, _items);
  // TODO Auto-generated constructor stub 
  currentContext = context;
  resource = textViewResourceId;
  items = _items;
  
  backgroundBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
  
 }
 
 public View getView(int position, View convertView, ViewGroup parent) {
 
  LinearLayout griditem;
  
  if(convertView == null){
   griditem = new LinearLayout(getContext());
   
   String inflater = Context.LAYOUT_INFLATER_SERVICE;
   LayoutInflater vi;
   
   vi = (LayoutInflater)getContext().getSystemService(inflater);
   vi.inflate(resource, griditem, true);
  }
  else{
   griditem = (LinearLayout) convertView;
  }
  
  ImportData data = items.get(position);
  
  normalItem = (RelativeLayout)griditem.findViewById(R.id.normal_item);
  record_img_Item = (LinearLayout)griditem.findViewById(R.id.record_ing_item);
  record_end_Item = (RelativeLayout)griditem.findViewById(R.id.record_end_item);
  
  
  //itemDeleteBtn = (ImageButton)griditem.findViewById(R.id.import_item_delete_btn);
  thumbnail = (ImageView)griditem.findViewById(R.id.import_item_img);
  contactCountView = (TextView)griditem.findViewById(R.id.contact_count);
  completeRecodeTime = (TextView)griditem.findViewById(R.id.complete_record_time);
  recordSize = (TextView)griditem.findViewById(R.id.record_size);
  recordTime = (TextView)griditem.findViewById(R.id.record_time);
  recordingImg = (ImageView)griditem.findViewById(R.id.record_img);
  
  
  if(thumbnail != null){
   thumbnail.setBackgroundResource(R.drawable.ic_contact_picture);//여기에서 리소스로 이미지 그려주면 잘 들어갑니다..
   //thumbnail.setImageBitmap(backgroundBmp);
  }
  if(recordingImg != null){
   recordingImg.setBackgroundResource(R.drawable.icon);
  }
  
  switch (data.getType()) {
  case IMPORT_IMAGE:
   normalItem.setVisibility(View.VISIBLE);
   record_img_Item.setVisibility(View.GONE);
   record_end_Item.setVisibility(View.GONE);
   
   if(data.getThumbail() != null)
   {
    thumbnail.setImageBitmap(backgroundBmp);//그런데 여기서 비트맵을 올려주면 올라가질 않네요..-ㅅ-... 비트맵이 아예 안뜹니다.. 에러는 없는데... 비트맵은 임시로 아이콘 이미지 가져다가 해봤는데도 이러네요...
    //thumbnail.setBackgroundResource(R.drawable.ic_contact_picture);
   }
   
   contactCountView.setVisibility(View.GONE);
   break;
  
  case IMPORT_CONTACT:
   normalItem.setVisibility(View.VISIBLE);
   record_img_Item.setVisibility(View.GONE);
   record_end_Item.setVisibility(View.GONE);
   
   contactCountView.setText(Integer.toString(data.getContactCount()));
   contactCountView.setVisibility(View.VISIBLE);
   
   break;
  
  case IMPORT_GIOTAG:
   normalItem.setVisibility(View.VISIBLE);
   record_img_Item.setVisibility(View.GONE);
   record_end_Item.setVisibility(View.GONE);
   
   contactCountView.setVisibility(View.GONE);
   break;
   
  case IMPORT_RECORD:
   normalItem.setVisibility(View.GONE);
   
   if(data.getRecordingCondition())
   {
    record_img_Item.setVisibility(View.VISIBLE);
    record_end_Item.setVisibility(View.GONE);
    
    //itemDeleteBtn.setVisibility(View.GONE);
   }
   else
   {
    record_img_Item.setVisibility(View.GONE);
    record_end_Item.setVisibility(View.VISIBLE);
    
    //itemDeleteBtn.setVisibility(View.VISIBLE);
   }
   
   contactCountView.setVisibility(View.GONE);
   break;

  default:
   break;
  }
  
  return griditem;
 }

어디서 잘못된 걸까요...ㅠㅠ

//디버깅하면서 체크해 보니까 비트맵 너비, 높이가 -1로 들어가버리네요...-ㅅ-... 왜 이런식으로 들어가는지.. 어떻게 수정해야 하는지 모르겠네요..............