Android: Ottenere un Bitmap da una connessione URL (graph.facebook.com) che reindirizza ad un altro URL

Ho fatto tutto per get un url where posso get la foto di profilo di un utente di facebook.

L'unico problema rimasto adesso è quello di get l'image in un object bitmap.

  • android.view.ViewRoot $ CalledFromWrongThreadException:
  • Android OpenGL ES Sfondo trasparente
  • NestedScrollView scorre verso il basso quando il contenuto viene riempito
  • Qual è il significato di android.intent.action.MAIN?
  • Mappa di Bing per Android
  • La comunicazione di inter-frammento applicata a frammenti nidificati?
  • Poiché, http://graph.facebook.com ora reindirizza la connessione innanzitutto (come possiamo vedere nell'URL) a https://fbcdn-profile-a.akamaihd.net/ … (qualcosa di simile).

    Quindi, volevo chiedere come posso get il bitmap dall'URL: http://graph.facebook.com/ … che reindirizza a https://fbcdn-profile-a.akamaihd.net/ .. .

  • Come recuperare l'image utilizzando JSON in ListFragment?
  • Facebook Like button Integrazione in Android
  • Utilizzare una class per memorizzare i dati statici in Java?
  • Android YouTube api v3 - orientamento
  • Impostare Android SDK dietro il proxy del server?
  • Rimuovere il titolo nella barra degli strumenti in appcompat-v7
  • 2 Solutions collect form web for “Android: Ottenere un Bitmap da una connessione URL (graph.facebook.com) che reindirizza ad un altro URL”

    Hai ragione dicendo che http://graph.facebook.com reindirizza prima la connessione (come possiamo vedere nell'URL) a https://fbcdn-profile-a.akamaihd.net/ , ma-

    il reindirizzamento automatico funziona automaticamente quando i protocolli originali e reindirizzati sono uguali.

    Quindi, se si tenta di caricare le immagini da https anziché http: " https://graph.facebook.com/USER_ID/picture "; poiché l'URL dell'image è " https://fbcdn-profile-a.akamaihd.net/ ….", BitmapFactory.decodeStream dovrà lavorare di nuovo per get il bitmap.

    Ecco il codice-

     URL imgUrl = new URL("https://graph.facebook.com/{user-id}/picture?type=large"); InputStream in = (InputStream) imgUrl.getContent(); Bitmap bitmap = BitmapFactory.decodeStream(in); 

    Spero possa aiutare. In bocca al lupo.

    Aggiornamento: Il metodo dato da Sahil Mittal funziona assolutamente bene e vi chiederei di usare il suo metodo.

    Quanto al metodo che ho usato nel frattempo, puoi leggere questa risposta.

    Non so se il metodo dato da Sahil Mittal funziona o less.

    Non ho cercato di farlo, ma ho usato un altro segmento di codice che sembra funzionare per me.

    Ma ritornerò se funziona o no non appena provo.

     Bitmap getUserBitmap(String username){ HttpGet httpRequest = null; Bitmap userbmp = null; try { URL url = new URL("http://graph.facebook.com/" + username + "/picture?type=small"); httpRequest = new HttpGet(url.toURI()); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); userbmp = BitmapFactory.decodeStream(instream); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } userbmp = getRoundedShape(userbmp); // function call to make the image round return (userbmp); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.