Android and Facebook: How to get picture of logged in User

前端 未结 7 1070
攒了一身酷
攒了一身酷 2020-12-08 06:30

I use the official Facebook SDK in my Android Application. After the user logs in, I can get the uid and the name of the facebook user like so:

Facebook mFac         


        
7条回答
  •  死守一世寂寞
    2020-12-08 06:47

    I also had that problem some time ago. What I did was download the picture using an async task, and then set an ImageView with the image just downloaded. I will paste the code snippet:

    ImageView fbUserAvatar = (ImageView) findViewById(R.id.fb_user_avatar);
    
    private synchronized void downloadAvatar() {
        AsyncTask task = new AsyncTask() {
    
            @Override
            public Bitmap doInBackground(Void... params) {
                URL fbAvatarUrl = null;
                Bitmap fbAvatarBitmap = null;
                try {
                    fbAvatarUrl = new URL("http://graph.facebook.com/"+USER_ID+"/picture");
                    fbAvatarBitmap = BitmapFactory.decodeStream(fbAvatarUrl.openConnection().getInputStream());
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return fbAvatarBitmap;
            }
    
            @Override
            protected void onPostExecute(Bitmap result) {
                fbUserAvatar.setImageBitmap(result);
            }
    
        };
        task.execute();
    }
    

    This code works for me. I hope it works for you too.

提交回复
热议问题