Я хочу создать собственную галерею изображений с кнопкой камеры. Я могу отображать все изображения устройств в сетке, а также захватывать изображения. но представление сетки не обновляется динамически .. plz предложите
сначала я показываю все доступные изображения, когда пользователь захватывает изображение, я хочу добавить это изображение динамически в виде сетки.
//--------code to get images from device--------------
private void getImages()
{
projection = new String[]{MediaStore.Images.Thumbnails._ID};
cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection,
null,
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
}
//--------
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("RESULT CODE", "--" + resultCode);
if (resultCode == RESULT_OK) {
if (requestCode == CAMERA_REQUEST) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
Random random = new Random();
int no1 = random.nextInt(15 - 0);
int no2 = random.nextInt(25 - 15) + 15;
String fileName = tempString.substring(no1, no2) + ".jpg";
try {
Bitmap photo = (Bitmap) data.getExtras().get("data");
File outFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), fileName);
FileOutputStream fos = new FileOutputStream(outFile);
photo.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
getImages();
// sdcardImages.setAdapter(imageAdapter);
imageAdapter.notifyDataSetChanged();
}catch (Exception e) {
e.printStackTrace();
}
}
}
}
//--custom adapter class
public class ImageAdapter extends BaseAdapter{
Context context;
public ImageAdapter(Context localContext){
context = localContext;}
public int getCount() {
return cursor.getCount();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
final ImageView picturesView;
if (convertView == null){
picturesView = new ImageView(context);
cursor.moveToPosition(position);
int imageID = cursor.getInt(columnIndex);
picturesView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTER
NAL_CONTENT_URI,"" + imageID));
picturesView.setScaleType(ImageView.ScaleType.FIT_XY);
picturesView.setPadding(5, 5, 5, 5);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth() / 3;
picturesView.setLayoutParams(new GridView.LayoutParams(width, width));
} else {
picturesView = (ImageView) convertView;
}
return picturesView;
}//get view
}//image adapter