java - 从 facebook 获取个人资料图片并在 imageview 中设置

标签 java android facebook

我检索了用户 ID、电子邮件、姓名等详细信息,但我想在我的 ImageView 中设置用户个人资料图片。
怎么做到的?

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();
}

我正在使用 v2.3 版本,登录按钮是 facebook 库的预定义按钮,请提前帮助我或指导我。

最佳答案

最后我得到答案我使用这段代码

       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();
            }

关于java - 从 facebook 获取个人资料图片并在 imageview 中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31284045/

相关文章:

java - 线程数组?

java - 重新加载 JFrame 或 JLabel

java - 当我在 Java 中使用 GridBagLayout 时,按钮没有填充所有可用空间

android - 如何在 Android 中将 Fragments 添加到后台堆栈

android - 专业 key 的许可证检查

java - 保存父对象后自动保存子对象

javascript - 无法在 Android 设备上的 Javascript 中获取触摸事件的坐标

javascript - (#200) 用户未授权应用程序执行此操作

javascript - 什么时候真正使用 ChannelUrl?

Facebook 发布到 Feed