GridView gv;

 private void layout() {
  gv = new GridView(context);
  mAdapter = new ImageAdapter();
  gv.setAdapter(mAdapter);
  final int L = 15;
  Collections.sort(files);
  if (files.size() > L) {
   for (int i = 0; i < L; i++) {
    File f = files.get(i);
    shown.add(f);
    files.remove(f);
   }
  }

  mAdapter.notifyDataSetChanged();
  gv.setNumColumns(1);
  gv.setVerticalSpacing(10);
  gv.setHorizontalSpacing(10);

  gv.setOnScrollListener(new OnScrollListener() {

   public void onScrollStateChanged(AbsListView view, int scrollState) {

   }

   public void onScroll(AbsListView v, int firstVisibleItem,
     int visibleItemCount, int totalItemCount) {
    if (firstVisibleItem + visibleItemCount == totalItemCount) {
     if (LOADING == false) {
      LOADING = true;
      new add().execute(new Integer[] {});
     }

    }
   }
  });

  gv.setOnItemLongClickListener(new OnItemLongClickListener() {

   public boolean onItemLongClick(AdapterView<?> parent, View view,
     int position, long id) {

    return false;
   }
  });

  gv.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> parent, View view,
     int position, long id) {

   }
  });
  setContentView(gv);
 }

 private class add extends AsyncTask<Integer, Void, Void> {
  File f;

  @Override
  protected Void doInBackground(Integer... params) {
   if (files.size() > 10) {
    for (int i = 0; i < 10; i++) {
     f = shown.get(i);
     files.add(f);
     shown.remove(i);

     f = files.get(i);
     shown.add(f);
     files.remove(i);
    }
   }
   return null;
  }

  @Override
  protected void onPostExecute(Void result) {
   super.onPostExecute(result);
   mAdapter.notifyDataSetChanged();
   gv.setScrollX(0);
   LOADING = false;
  }

 }

 

 

 

 

 

 

 private class ImageAdapter extends BaseAdapter {

  public int getCount() {
   return shown.size();
  }

  public Object getItem(int position) {
   return shown.get(position);
  }

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

  public View getView(int position, View convertView, ViewGroup parent) {
   LinearLayout l;
   TextView tv = new TextView(context);
   File f = shown.get(position);
   tv.setText(Util.longTotime(f.lastModified()) + "\n"
     + (position + 1) + "/" + shown.size() + "");
   ImageView iv = new ImageView(context);
   l = new LinearLayout(context);
   l.setOrientation(LinearLayout.HORIZONTAL);

   iv.setLayoutParams(new GridView.LayoutParams(85, 85));
   iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
   iv.setPadding(8, 8, 8, 8);

   iv.setImageBitmap(BitmapFactory.decodeFile(f.getAbsolutePath()));

   l.addView(iv);
   l.addView(tv);
   return l;
  }
 }

 

 

이게 코든데요... 전 먼저 지운 뒤에 보여주는데 왜 렉이걸리는걸까여? ㅜ

고수님들 도와주세여...