Первое, что вам нужно сделать, это объявить о намерении
Intent i_cp = new Intent(this,ImagePicker.class);
и используйте startActivityForResult(i_cp, 111);
, который будет искать некоторый результат. в нашем случае для положения изображения; целочисленное значение.
, указав request_code (111), который будет использоваться для идентификации результата при возврате по начальному намерению Здесь мы не будем использовать setAction(i_cp.ACTION_PICK);
и setType("image/*");
, потому что мы не собираемся возвращать изображение, мы просто возвращаем положение изображения. Наше использование Intent будет ограничено только передачей и получением целочисленного значения (позиция значения).
Теперь как насчет того, чтобы получить ту позицию изображения, которую выбрал пользователь. позиция получается в методе onItemClick GalleryView по одному из параметров
public void onItemClick(AdapterView parent, View v, int position,long rid)
теперь объявляем одну переменную, такую как int pos; и назначьте -1, чтобы определить, выбрано ли изображение или нет, и если изображение выбрано, то в событии onclick положения значения кнопки передачи saveimage как
retIntent.putExtra("SelectedImage", pos);
и в onActivityForResult определить намерение по переданному коду запроса и извлечь эту позицию как
int pos = data.getExtras().getInt("SelectedImage");
и установите его как
usr_im.setImageResource(ImagePicker.pics[pos]);
и этот массив изображений [], который содержит все идентификаторы изображений, хранящихся в одной из папок res/drawable
вашего приложения, объявите его как
public static Integer[] pics={values};
В противном случае вы не сможете установить изображение.