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로 들어가버리네요...-ㅅ-... 왜 이런식으로 들어가는지.. 어떻게 수정해야 하는지 모르겠네요..............
Bitmap을 Drawable로 바꾼후 setBackgroundDrawable(Drawable d) 를 사용 해보시면 어떨까요?
아니면 레이아웃인 griditem에 ImageView를 추가한 후 그 이미지뷰에 setImageBitmap() 를 사용하시던가요