2011-04-25 5 views
3

내 앱에서 갤러리보기를 사용하고 있습니다. 응용 프로그램은 그 갤러리에서 뷰를 드래그 앤 드롭 할 수 있도록 설계되었습니다.android : 갤러리에서보기 제거

갤러리에서 드래그 한보기를 제거하려면 어떻게해야합니까?

답변

6

기본 어댑터에서 제거합니다. 이 작업을 올바르게 수행하면 Gallery이 자동으로 새로 고침됩니다. 그렇지 않으면 어댑터의 notifyDataSetChanged()으로 전화하여 Gallery 업데이트를 트리거하십시오.

0

ImageAdapter를 재정의하는 경우 이미지 목록에 항목을 삭제하거나 항목을 추가하는 방법을 추가하거나 원하는 경우 즉시 목록을 완전히 바꿀 수 있으므로 원하는대로 내용을 수정할 수 있습니다. 시작시 앱 배너를 표시하고 갤러리가 슬라이더로 응용 프로그램의 모드를 표시하도록 변경합니다. ImageAdapter의 데이터 세트를 수정하는 메서드를 호출 할 때마다 CommonsWare가 위에서 말한 것처럼 imageAdapter.notifyDataSetChanged()를 호출합니다.

// in onCreate 
    _gallery = (Gallery) this.findViewById(R.id.gallery_header); 
    _imageAdapter = new ImageAdapter(getApplicationContext(),screen_width,screen_height); 
    _imageAdapter.setBannerMode(true);   
    _gallery.setAdapter(_imageAdapter); 


    // the main activity, in my case in a message handler. 

    _imageAdapter.setBannerMode(false); 
    _imageAdapter.notifyDataSetChanged(); 
    _gallery.setSelection(0,true); 

    // this is my extended image adapter class 

    import android.content.Context; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.BaseAdapter; 
    import android.widget.Gallery; 
    import android.widget.ImageView; 
    import android.widget.ImageView.ScaleType; 

public class ImageAdapter extends BaseAdapter 
{ 
    private Context _context = null; 
    private int[] imageIds = { R.drawable.add_banner,R.drawable.subtract_banner,R.drawable.multiply_banner,R.drawable.divide_banner }; 
    private int[] bannerIds = { R.drawable.mathpiggie_banner }; 
    private static boolean bannerEnabled = true; 

    int _screen_width; 
    int _screen_height; 

    public ImageAdapter(Context context, int screen_width, int screen_height) { 
     this._context = context; 
     _screen_width = screen_width; 
     _screen_height = screen_height; 
    } 

    public void setBannerMode(boolean val) 
    { 
     bannerEnabled = val; 
    } 

    @Override 
    public int getCount() 
     { 
      if (bannerEnabled) 
       return bannerIds.length; 
      else 
       return imageIds.length; 
     } 

    @Override 
    public Object getItem(int index) 
     { 
      if (bannerEnabled) 
        return bannerIds[index]; 
      else 
       return imageIds[index]; 
     } 

    @Override 
    public long getItemId(int index) 
     { 
      return index; 
     } 

    @Override 
    public View getView(int postion, View view, ViewGroup group) 
     { 
      ImageView imageView = new ImageView(_context); 
      if (bannerEnabled) 
       imageView.setImageResource(bannerIds[postion]); 
      else 
       imageView.setImageResource(imageIds[postion]); 

      return imageView; 
     } 
} 
관련 문제