我正在寻找一些关于如何做到这一点的建议。
我想要一个用户从 android 库中选择的活动,然后图像将被添加到活动的网格视图中。我已经成功地分别实现了两者,但是当我必须将它们结合起来时,我不知所措。网格视图教程在这里。问题是网格视图教程使用来自 res/drawable 的图像,所以我从画廊获得的 uri 并不完全有效。
我应该如何在 ImageAdapter 类中设置图像?我一直在尝试使用手机中一张图像的 uri 地址来执行 imageView.setImageBitmap(bitmap),但它没有用。
我正在考虑创建一个 String 的 ArrayList,其中包含从画廊获得的图像的 uri。这样我就可以轻松地添加、删除和存储图像。
与此相关的其他问题是,如果我显示图像,如果我再次调用 setAdapter,它会刷新吗?如果我从源 ArrayList 中删除,会自动删除工作吗?
谢谢
以下是我编辑的网格视图 tut 的代码:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return imageId.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
Uri targetUri = Uri.parse(tests.get(0));
//tests contains the uri of the photo i'm trying to import from my phone gallery in string form
Bitmap bitmap;
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
imageView.setImageBitmap(bitmap);
return imageView;
}
}