如何从ProfilePictureView获取配置文件图片以存储在数据库中

时间:2014-03-04 12:07:03

标签: android facebook-android-sdk

我已经在我的Android应用程序中成功集成了facebook登录。所以我显示用户档案数据,如姓名,电子邮件和图片。

现在我需要在数据库中存储名称,电子邮件和个人资料图片等用户数据。我知道如何获取名称和电子邮件,因为它可以从TextViews获取。 但我很难获得个人资料图片。

使用ProfilePictureView显示个人资料照片。

我尝试将ProfilePictureView上的图像转换为字节数组,但它不起作用。(通常这适用于ImageView,Imagebuttons,但它不能与ProfilePictureView一起使用

    pic.setProfileId(user.getId());
    ImageView imageView = (ImageView)pic.getChildAt(0);
    Bitmap bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
    image_ = convertImageToByte(bmp); //image_ is a byte[]

    private byte[] convertImageToByte(Bitmap bitmap) {
       ByteArrayOutputStream stream = new ByteArrayOutputStream();
       bitmap.compress(Bitmap.CompressFormat.JPEG, 90, stream);
       return stream.toByteArray();
    }

我得到的是这样的图像,而不是真实的个人资料图片。

enter image description here

无论如何存储图像? (比如获取要存储的个人资料图片的链接,以便我可以在以后使用该链接检索图像) 感谢。

2 个答案:

答案 0 :(得分:3)

试试这个。它对我有用

private ProfilePictureView profilepic;

在OnCreate方法类型中:

profilepic = (ProfilePictureView) findViewById(R.id.<profilepicture id>);
profilepic.setProfileId(id of user (string));

希望有所帮助

答案 1 :(得分:1)

我使用了它并且它正常工作:

profileImageView = ((ImageView)faceBookProfilePictureView.getChildAt(0));
                            bitmap  = ((BitmapDrawable)profileImageView.getDrawable()).getBitmap();
                              circular.setImageBitmap(bitmap);

其中“circular”是CircularImageView对象。