13

Image Gridview があり、ギャラリーから選択するか、カメラからキャプチャした画像を 1 つずつ gridview追加したいと考えています。

4

3 に答える 3

5

あなたの場合にできることは、常にグリッド ビューの最後の項目に画像を割り当てることです。最後のアイテムをクリックすると、ポップアップを作成して、ギャラリーまたはカメラに持っていくように求めることができます。ユーザーが戻るボタンをクリックするか、グリッド ビューに最後に入力された「+」記号の画像を表示し続けることをキャンセルすることにした場合、他のオプションが選択されているonActivityResult(). 場合は、結果コードが正の場合に、目的のアクションに移動できます。そして、あなたは続けることができます:

1) Delete the last item from grid view i.e, the '+' sign image
2) Appending the image either taken from camera or gallery
3) Appending the image having '+' sign itself

そして、常にグリッド ビューの最後のアイテムに条件を付けて、ギャラリーに移動するためのダイアログまたはカメラからクリックするためのダイアログをポイントします。他のアイテムについては、ご希望の要件を続けることができます。

それが役に立ったかどうか教えてください。

ありがとう

于 2013-02-18T06:57:08.553 に答える
2

SDカードのフォルダ[画像]に画像を入れます

public class ChannelImageAdapter extends BaseAdapter {

int mGalleryItemBackground;
private Context mContext;
File[] images;
File[] files;
public ChannelImageAdapter(Context c, int folderID) {
    mContext = c;

    File dir = new File(Environment.getExternalStorageDirectory() + "/images");
    files = dir.listFiles();
    images = files[folderID].listFiles();

}
public int getCount() {
    return images.length;
}
public Object getItem(int position) {
    return images[position].getAbsolutePath();
}
public long getItemId(int position) {
    return position;
}
public String getAlbumName(int folderID) {
    return files[folderID].getName();
}
public View getView(int position, View convertView, ViewGroup parent) {

    ImageView imageView;
    //Bitmap bm = BitmapFactory
    //      .decodeFile(images[position].getAbsolutePath());
    if (convertView == null) {
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setPadding(5, 10, 5, 10);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView.setImageBitmap(Bitmap.decode(images[position].getAbsoluteFile()));
    return imageView;

}

}

于 2013-02-11T07:31:38.033 に答える