package com.newtalktalk.Adapter;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import com.newtalktalk.activity.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class ImageGridAdapter extends BaseAdapter{
private Context context = null;
private List<String> sdcardpath;
public ImageGridAdapter(Context con){
this.context = con;
try{
sdcardpath = new ArrayList<String>();
File[] file = new File(Environment.getExternalStorageDirectory()+"/newtalktalk/").listFiles();
for(File filename : file){
sdcardpath.add(Environment.getExternalStorageDirectory()+"/newtalktalk/" + filename.getName().toString());
}
}catch (Exception e) {
// TODO: handle exception
Log.d("ErrorLog", "ImageAdapter : " + e.toString() );
}
}
// 이미지의 갯수
@Override
public int getCount() {
// TODO Auto-generated method stub
return sdcardpath.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position ;
}
// 선택된 이미지ID를 반환
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
v = View.inflate(context, R.layout.testgridview, null);
ImageView v_image = (ImageView)v.findViewById(R.id.photoimage);
Bitmap bmp = BitmapFactory.decodeFile(sdcardpath.get(position).toString());
try{
if(null != convertView){
//v_image = (ImageView)convertView;
bmp = Bitmap.createScaledBitmap(bmp, 320, 240, true);
v_image.setImageBitmap(bmp);
}else{
//이미지 사이즈 조정 320 * 240
bmp = Bitmap.createScaledBitmap(bmp, 320, 240, true);
// 이미지뷰 재정의
//v_image = new ImageView(context);
v_image.setImageBitmap(bmp);
//ImageViewOnClickListener imageviewclick = new ImageViewOnClickListener(context, Imageids[position]);
//v_image.setOnClickListener(imageviewclick);
}
}catch (Exception e) {
// TODO: handle exception
Log.d("ErrorLog", "ImageAdapter GetView : " + e.toString());
}
bmp = null;
return v;
}
}
gridview 로 구현한 것입니다..
사이즈도 줄엿구.. 첫 화면은 잘뜹니다..
근데 여기서.. 스크롤을 계속 반복하게되면..
앱이 죽어버리네요.. 에러를 보니까 아웃오브메모리라는데..
그래서 bitmapfactory.option 을 써봤는데도..
계속 앱이 죽네요.. 이거 해결방안좀 알려주세요 ㅜ.ㅜ