#android #android-adapterview
#Android #android-adapterview
Вопрос:
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)));
}
}
Здесь у меня есть адаптер для галереи. Мне интересно, есть ли метод, который я могу использовать, который позволяет мне определять, когда изображение изменено, и извлекает номер позиции изображения, чтобы я мог отправить его в свою активность.
Комментарии:
1. Вы имеете в виду, когда изображение перемещается в центр и выбирается? В этом случае вы можете использовать setOnItemSelectedListener() для галереи.
Ответ №1:
Позиция — это то, что вам нужно. Смотрите 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
}
});