これを行う方法についてのアドバイスを探しています。
ユーザーがAndroidギャラリーから選択するアクティビティが必要です。その後、画像がアクティビティのグリッドビューに追加されます。私は両方を別々に実装することに成功しましたが、それらを組み合わせる必要があるとき、私は途方に暮れています。グリッドビューのチュートリアルはこちらです。問題は、グリッドビューのチュートリアルでres / drawableの画像を使用しているため、ギャラリーから取得したuriが正確に機能しないことです。
ImageAdapterクラス内で画像を設定するにはどうすればよいですか?携帯電話の画像の1つのURIアドレスを使用してimageView.setImageBitmap(bitmap)を実行しようとしましたが、機能しませんでした。
ギャラリーから取得した画像のURIを含む文字列のArrayListを作成することを考えています。このようにして、画像を簡単に追加、削除、保存できます。
これに伴う他の質問は、画像が表示された場合、単にsetAdapterを再度呼び出すと更新されますか?ソースのArrayListから削除すると、自動的に削除されますか?
ありがとうございました
以下は、私が編集したグリッドビューのコードです。
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;
}
}