Come ottenere l'immagine da uno schermo a un altro schermo?
-
27-10-2019 - |
Domanda
ho implementato galleryview in una schermata denominata display_image.xml in cui ho mostrato varie immagini disponibili su sdcard ora quando l'utente seleziona l'immagine e preme il pulsante salva immagine sullo stesso schermo display_image.xml quindi l'immagine selezionata dovrebbe essere cambiata nel suo / leiimmagine del profilo in un'altra schermata.
La mia domanda è come potrei ottenere quell'immagine da uno schermo per cambiare l'immagine dell'utente in un altro schermo e quell'immagine selezionata dovrebbe anche essere inserita nel database per un successivo recupero quando l'utente accede in seguito.Lascia che ti dica che la mia immagine non proviene da nessun servizio web.
Per favore aiutami ......... Ringraziandoti .........
Soluzione 3
La prima cosa che devi fare è dichiarare un intento
Intent i_cp = new Intent(this,ImagePicker.class);
e usa startActivityForResult(i_cp, 111);
che cercherà dei risultati. nel nostro caso per la posizione dell'immagine; un valore intero.
specificando request_code (111) che verrà utilizzato per identificare il risultato quando restituito dall'intento avviato. Qui non useremo setAction(i_cp.ACTION_PICK);
e setType("image/*");
perché non restituiremo l'immagine, ma restituiremo solo la posizione dell'immagine. Il nostro uso di Intent sarà limitato al solo passaggio e recupero del valore intero (posizione del valore).
Ora che ne dici di ottenere quella posizione dell'immagine che l'utente ha selezionato. la posizione è ottenuta nel metodo onItemClick di GalleryView da uno dei parametri
public void onItemClick(AdapterView parent, View v, int position,long rid)
ora dichiara una variabile come int pos; e assegna -1 per identificare se l'immagine è selezionata o meno e se l'immagine è selezionata quindi nell'evento onclick del pulsante salva l'immagine passa la posizione del valore come
retIntent.putExtra("SelectedImage", pos);
e in onActivityForResult identifica l'intento in base al codice di richiesta passato ed estrai quella posizione come
int pos = data.getExtras().getInt("SelectedImage");
e impostalo come
usr_im.setImageResource(ImagePicker.pics[pos]);
e questo array di foto [] che contiene tutti gli ID delle immagini archiviate in una delle cartelle res/drawable
della tua applicazione, dichiaralo come
public static Integer[] pics={values};
Altrimenti non sarai in grado di impostare l'immagine.
Altri suggerimenti
Puoi farlo in due modi: 1) Passa il percorso della scheda SD dell'immagine selezionata e carica direttamente quell'immagine dal percorso in Imageview. 2) puoi convertire l'immagine in byte [] e passare byte [] e recuperare l'immagine.
Spero che tu mi prenda. Buona fortuna
Utilizza " activityForResult ".
Il concetto è iniziare la tua immagine scegliendo l'attività chiamando
startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);
Ora in questa attività, quando l'utente fa clic su una qualsiasi delle immagini gestisci quell'evento come segue:
alcuni OnClick(){<br>Intent resultIntent = new Intent();
in questo intento imposta l'array di byte della tua immagine in extra OPPURE il percorso della scheda SD della tua immagine
quindi chiama setResult(RESULT_OK, resultIntent);
Questo restituirà la chiamata all'attività precedente nel metodo onActivityResult(int resultCode, ..., Intent data)
QUI usa i dati come intento per recuperare le informazioni che ti servono