Как перенести изображение с одного экрана на другой?
-
27-10-2019 - |
Вопрос
Я реализовал просмотр галереи на одном экране с именем display_image.xml, в котором я показал различные изображения, доступные на SD-карте, когда пользователь выбирает изображение и нажимает кнопку сохранения изображения на том же экране display_image.xml, а затем выбранное изображение должно быть изменено на его / ееизображение профиля на другом экране.
Мой вопрос заключается в том, как я могу получить это изображение с одного экрана, чтобы изменить изображение пользователя на другом экране, и это выбранное изображение также должно быть вставлено в базу данных для последующего использования, когда пользователь войдет в систему позже.Позвольте мне сказать вам, что мое изображение не исходит от какого-либо веб-сервиса.
Пожалуйста, помогите мне ......... Спасибо .........
Решение 3
Первое, что вам нужно сделать, это объявить о намерении
родовое слово и используйте startActivityForResult(i_cp, 111);
, который будет искать какой-то результат. в нашем случае для положения изображения; целочисленное значение.
, указав request_code (111), который будет использоваться для идентификации результата, когда он будет возвращен начальным намерением. Здесь мы не будем использовать setAction(i_cp.ACTION_PICK);
и setType("image/*");
, потому что мы не собираемся возвращать изображение, мы просто возвращаем позицию изображения. Наше использование Intent будет ограничено простой передачей и получением целочисленного значения (позиция значения).
Теперь, как насчет того, чтобы получить ту позицию изображения, которую выбрал пользователь. позиция получается в методе onItemClick объекта GalleryView одним из параметров
родовое словотеперь объявить одну переменную, например int pos; и присвойте -1, чтобы определить, выбрано ли изображение или нет, и если изображение выбрано, то в событии onclick кнопки saveimage передайте позицию значения как
родовое словои в onActivityForResult идентифицируют намерение по переданному коду запроса и извлекают эту позицию как
родовое словои установите его как
родовое слово и этот массив pics [], который содержит все идентификаторы изображений, хранящихся в одной из папок res/drawable
вашего приложения, объявить его как
В противном случае вы не сможете установить изображение.
Другие советы
Это можно сделать двумя способами: 1) Передайте путь к SD-карте выбранного изображения и напрямую загрузите это изображение из пути в просмотре изображений. 2) вы можете преобразовать изображение в байты [] и передать байты [] и вернуть изображение.
Надеюсь, ты меня поймешь. Удачи
Используйте " activityForResult ".
Идея заключается в том, чтобы начать действие по выбору изображения, позвонив
startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);
Теперь в этом действии, когда пользователь нажимает на любое изображение, обрабатывает это событие следующим образом:
some OnClick(){<br>Intent resultIntent = new Intent();
в этом намерении установить массив байтов вашего изображения в дополнительных материалах ИЛИ путь к SD-карте вашего изображения
затем вызовите setResult(RESULT_OK, resultIntent);
Это вернет вызов к предыдущему действию в методе onActivityResult(int resultCode, ..., Intent data)
ЗДЕСЬ используйте данные в качестве намерения для получения необходимой информации