Как получить изображение с одного экрана на другой экран? - PullRequest
0 голосов
/ 12 января 2012

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

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

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

Ответы [ 3 ]

0 голосов
/ 12 января 2012

Используйте « activityForResult ».
Концепция - запустить ваше изображение, выбирая активность, позвонив по номеру

startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);

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

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


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

0 голосов
/ 30 января 2012

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

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};

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

0 голосов
/ 12 января 2012

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

Надеюсь, ты меня поймешь. Best of Luck

...