Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列出Android捕获的照片_Android_Android Listview - Fatal编程技术网

列出Android捕获的照片

列出Android捕获的照片,android,android-listview,Android,Android Listview,我试着在拍照后列出一张照片清单。在拍摄完secont照片后,它将显示为列表中的第二项。我遇到了一些问题。我已经创建了适配器并尝试使用它。当我拍照时,相同的照片显示在列表视图中。我正在使用我在互联网上找到的方法 摄影课: public class Photo { public Bitmap icon; public String title; public Photo(){ super(); } public Photo(Bitmap bi

我试着在拍照后列出一张照片清单。在拍摄完secont照片后,它将显示为列表中的第二项。我遇到了一些问题。我已经创建了适配器并尝试使用它。当我拍照时,相同的照片显示在列表视图中。我正在使用我在互联网上找到的方法

摄影课:

public class Photo {
    public Bitmap icon;
    public String title;
    public Photo(){
        super();
    }

    public Photo(Bitmap bitmap, String title) {
        super();
        this.icon = bitmap;
        this.title = title;
    }

}


public class PhotoAdapter extends ArrayAdapter<Photo> {

    Context context;
    int layoutResourceId;
    ArrayList<Photo> data = null;
    public PhotoAdapter(Context context, int layoutResourceId, ArrayList<Photo> data) {
        super(context, layoutResourceId, data);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        PhotoHolder holder = null;

        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new PhotoHolder();
            holder.imgIcon = (ImageView) row.findViewById(R.id.imgIcon);
            holder.txtTitle = (TextView) row.findViewById(R.id.txtTitle);
            holder.del_but = (ImageView) row.findViewById(R.id.imgDel);

            row.setTag(holder);
        } else {
            holder = (PhotoHolder) row.getTag();
        }

        Photo photo = data.get(position) ;
        holder.txtTitle.setText(photo.title);
        holder.imgIcon.setImageBitmap(photo.icon);

        return row;
    }
}
混凝土法中的此代码:

ArrayList<Photo> photo_data = new ArrayList<Photo>();

        adapter = new PhotoAdapter(this, R.layout.photos_list_item, photo_data);

        listView1 = (ListView) findViewById(R.id.listView1);
        listView1.setAdapter(adapter);
我还提出了一个问题。如何从listview获取图像?
我真的不明白getView是如何工作的

可能的重复答案-[LINK][1][1]:但是我如何在代码中解决这个问题?
ArrayList<Photo> photo_data = new ArrayList<Photo>();

        adapter = new PhotoAdapter(this, R.layout.photos_list_item, photo_data);

        listView1 = (ListView) findViewById(R.id.listView1);
        listView1.setAdapter(adapter);
   private void setPic() {

        int targetW = 220;
        int targetH = 300;
        // Get the dimensions of the bitmap
        BitmapFactory.Options bmOptions = new BitmapFactory.Options();
        bmOptions.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
        int photoW = bmOptions.outWidth;
        int photoH = bmOptions.outHeight;
        /* Figure out which way needs to be reduced less */
        int scaleFactor = 1;
        if ((targetW > 0) || (targetH > 0)) {
            scaleFactor = Math.min(photoW / targetW, photoH / targetH);
        }
        // Decode the image file into a Bitmap sized to fill the View
        bmOptions.inJustDecodeBounds = false;
        bmOptions.inSampleSize = scaleFactor;
        bmOptions.inPurgeable = true;

        Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
        System.out.println("bitmap    " + bitmap);

        Photo li = new Photo(bitmap, "haha");
        adapter.addAll(li);
    }