从GoogleSignInAccount

时间:2016-04-30 14:48:30

标签: android google-api google-signin

在我的Android应用程序中,为了通过谷歌帐户进行身份验证,我按照此官方教程https://developers.google.com/identity/sign-in/android/people#retrieve_profile_information_for_a_signed-in_user进行操作。

如上所述,要检索个人资料图片,我使用" getPhotoUrl()" " GoogleSignInAccount"的方法类。例如:

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personEmail = acct.getEmail();
String personId = acct.getId();
Uri personPhoto = acct.getPhotoUrl();

问题是我通过此网址获得的图片质量非常差(小尺寸)。

Screenshot example

如何解决此问题?

2 个答案:

答案 0 :(得分:7)

如果您的照片网址有sz=50密钥(图片大小为50或其他)。然后将尺寸更换为最高尺寸。比如sz=240

我不确定您的照片网址是否为sz密钥,因为我使用Person API sz getUrl()来获取用户详细信息,现已弃用。< / p>

更新: Person.Image - 官方文档,其中说明如何获得不同维度的个人资料头像

  

此人的个人资料照片的网址。要调整图像大小并将其裁剪为正方形,请附加查询字符串?sz = x,其中x是每边的像素尺寸


但是,@ stackpic91表示新API GoogleSignInAccount.getPhotoUrl()已将 S96-c 更改为最高值以获取大图 S240-c

答案 1 :(得分:0)

当使用您选择的任何加载器(Glide / Picasso)加载图像时,只需对url字符串执行此操作:

avatarUrl.replace("s96-c", "s192-c", true)

avatarUrl.replace("s96-c", "s384-c", true)

获得更高的质量