2011-11-11 3 views
1
public class GalleryImageAdapter extends BaseAdapter{ 

    private Activity activity; 
    private ArrayList<String> listOfImages; 
    public ImageLoader imageLoader; 


    public GalleryImageAdapter(Activity a, ArrayList<String> listOfImages){ 
     activity = a; 
     this.listOfImages = listOfImages; 
     imageLoader=new ImageLoader(activity.getApplicationContext()); 
    } 

    @Override 
    public int getCount() { 
     return listOfImages.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return listOfImages.get(position); 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup viewGroup) { 
     View v = convertView; 


     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.gallery_layout, null); 

     } 



     final String url = listOfImages.get(position); 


     ImageView galleryImage = (ImageView) v.findViewById(R.id.galleryImage); 
     imageLoader.DisplayImage(url, activity, galleryImage); 


     v.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT,200)); 
     return v; 
    } 


    public float getScale(boolean focused, int offset) { 
     /* Formula: 1/(2^offset) */ 
      return Math.max(0, 1.0f/(float)Math.pow(2, Math.abs(offset))); 
     } 

} 

여기 내 갤러리 어댑터가 있습니다. 이미지가 바뀌면이를 감지하고 이미지의 위치 번호를 검색 할 수있는 방법을 사용할 수 있는지 궁금합니다. 따라서이를 내 활동으로 보낼 수 있습니다.Android 갤러리 위젯 : 이미지 변경시 트리거링 방법

+0

이미지가 가운데로 이동하여 선택되었을 때를 의미합니까? 이 경우 갤러리에서 setOnItemSelectedListener()를 사용할 수 있습니다. –

답변

3

위치는 내가 본 것입니다. AdapterView.OnItemSelectedListener을 참조하십시오.

mGallery.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View v, 
       int position, long id) { 
      // position will display it's place in the adapter 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // Do nothing 
     } 
    }); 
관련 문제