2012-01-12 4 views
0

Я реализовал галерею в одном экране с именем display_image.xml, в котором я теперь показывал различные изображения, доступные на SD-карте, когда пользователь выбирает картинку и нажимает кнопку сохранения изображения на том же экране display_image.xml, после чего выбранное изображение должно быть изменено в его профиле изображение на другом экране.Как получить изображение с одного экрана на другой экран?

Мой вопрос в том, как я смогу получить это изображение с одного экрана, чтобы изменить изображение пользователя на другом экране, и это выбранное изображение также должно быть вставлено в базу данных для последующего восстановления при последующем входе пользователя в систему. Позвольте мне сказать вам, что мой образ не приходит из любого веб-сервиса.

Пожалуйста, помогите мне ......... Поблагодарив вас .........

ответ

0

Первое, что вам нужно сделать, это объявить Intent

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 позы; и назначить -1, чтобы определить, выбран ли изображение, или нет, и если выбран образ, то в случае OnClick кнопки saveimage позиции значения, как передача

retIntent.putExtra("SelectedImage", pos); 

и в onActivityForResult определить намерения от прошедшего requestcode и экстракта, что положение как

int pos = data.getExtras().getInt("SelectedImage"); 

и установить его в качестве

usr_im.setImageResource(ImagePicker.pics[pos]); 

и этот массив фотографии [] ш Хич содержит все идентификаторы изображений, хранящихся в одном из res/drawable папки вашего приложения, объявить его как

public static Integer[] pics={values}; 

В противном случае вы не будете в состоянии установить изображение.

0

Вы можете сделать это двумя способами: 1) Пройди путь SD карту выбранного изображения и напрямую загружать это изображение из пути в представлении изображения. 2) вы можете конвертировать изображения в байты [] и передавать байты [] и возвращать изображение.

Надеюсь, у меня. Best of Luck

0

Использование "activityForResult".
Концепция является начать свой образ, выбирая деятельность по телефону

startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);

В настоящее время в этой деятельности, когда пользователь нажимает на любой из образа обрабатывать это событие следующим образом:
некоторые OnClick(){<br>Intent resultIntent = new Intent(); в этом умысел набор байтов массива ваше изображение в статистов или путь сд карты вашего изображения

затем вызвать setResult(RESULT_OK, resultIntent);


Th это собирается вернуть вызов к предыдущей деятельности в методе onActivityResult(int resultCode, ..., Intent data) ЗДЕСЬ использовать данные как намерение извлечь информацию вы требуете

Смежные вопросы