Java – Get your profile picture from Facebook and set it in imageview

Get your profile picture from Facebook and set it in imageview… here is a solution to the problem.

Get your profile picture from Facebook and set it in imageview

I

retrieved details like user ID, email, name, etc., but I want to set up a user profile picture in my ImageView.
How is it done?

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

String id;
    String name;
    String email;
    String gender;

@Override
    public void onSuccess(LoginResult loginResult) {

System.out.println("onSuccess");
        GraphRequest request = GraphRequest.newMeRequest
                (loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                         Application code
                        Log.v("LoginActivity", response.toString());
                        System.out.println("Check: " + response.toString());
                        try {
                            id = object.getString("id");
                             picture= object.getJSONObject("picture").getJSONObject("data").getString("url");
                            name = object.getString("name");
                            email = object.getString("email");
                            gender = object.getString("gender");
                             birthday = object.getString("birthday");
                             String location = object.getString("user_location");

Log.v("id", id);
                            Log.v("name", name);
                            Log.v("email", email);
                            Log.v("gender", gender);

SharedPreferences.Editor e = mSharedPreferences.edit();
                            e.putBoolean(PREF_KEY_FACEBOOK_LOGIN, true);
                            e.putString("id", id);
                            e.putString("name", name);
                            e.putString("email", email);
                            e.putString("gender", gender);
                            e.commit();

} catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                     Toast.makeText(getApplicationContext(), id + "\n"  + name + 
                     "\n" + email + "\n" + gender, Toast.LENGTH_LONG).show();
                }

});

Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,email,gender, birthday");
        request.setParameters(parameters);
        request.executeAsync();
}

I’m using v2.3 and the login button is a predefined button for the facebook library, please help me or guide me in advance.

Solution

Finally I get the answer and I use this code

       public static Bitmap getFacebookProfilePicture(String userID) throws IOException {
                URL imageURL = new URL("https://graph.facebook.com/" + userID + "/picture?type=large");
                Bitmap bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream());

return bitmap;
            }

 on createView method 

try {
                Bitmap mBitmap = getFacebookProfilePicture(id);
                imageView.setImageBitmap(mBitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }

Related Problems and Solutions