Androidでフォトギャラリーを作りたいです。と を使用Gallery
しBaseAdapter
て、スクロール可能なギャラリーを作成しています。ここで、ギャラリーの画像が表示されたときにアクションを追加したいので (各画像の幅は画面の幅と同じです)、画像配列でそのインデックスを取得する必要があります。私の質問は、画面に表示される画像のインデックスを取得する方法ですか?
クリックイベントではなく、画面に表示されるとすぐに画像のインデックスを取得したい。で現在の画像位置を取得しようとしましgetView()
たが、結果は奇妙です:
image02 までスクロールしますが、position=2 (1 である必要があります) です。スクロールして戻ると、image02 の位置 = 0 (1 のはず) です。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Gallery g = (Gallery) this.findViewById(R.id.Gallery);
g.setAdapter(new ImageAdapter(this));
}
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private Integer[] mImageIds = {
//each image's size is 320x60
R.drawable.btm01,
R.drawable.btm02,
R.drawable.btm03
};
public ImageAdapter(Context c){
this.mContext = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mImageIds.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(320,60));
return imageView;
}