我试图通过Google+显示登录我的应用的用户的个人资料图片但不知道如何执行此操作。要获取图片(和其他信息),Google会提供代码
@Override
public void onConnected() {
...
if (mPlusClient.getCurrentPerson() != null) {
Person currentPerson = mPlusClient.getCurrentPerson();
String personName = currentPerson.getDisplayName();
String personPhoto = currentPerson.getImage();
String personGooglePlusProfile = currentPerson.getUrl();
}
}
我知道通常我需要从res/drawable...
获取我想要显示的任何图像,但我不知道如何处理personPhoto
的值(以某种方式从类型改变了将代码粘贴到Eclipse中时String
到Image
。
答案 0 :(得分:5)
您需要使用该网址将照片作为位图抓取并将其设置为图像视图。
本文的第4.9节解释了如何制作一个能够做到这一点的asynctask:
http://www.androidhive.info/2014/02/android-login-with-google-plus-account-1/
答案 1 :(得分:5)
首先,您需要在app / build.gradle文件中添加此依赖项:
dependencies {compile 'com.github.bumptech.glide:glide:3.8.0'}
此更新后,您的用户界面相应:
private void updateUI(GoogleSignInAccount account) {
if (account != null){
text.setText("Sign in as :" +account.getDisplayName());
email.setText(account.getEmail());
String imgurl = account.getPhotoUrl().toString();
Glide.with(this).load(imgurl).into(profile);
sighIn.setVisibility(View.GONE);
sighOut.setVisibility(View.VISIBLE);
}
else {
text.setText("signOut");
sighIn.setVisibility(View.VISIBLE);
sighOut.setVisibility(View.GONE);
}
}
答案 2 :(得分:0)
这是适用于我的Android应用程序的解决方案。我是根据Naveen Kumar Yadav的上述答案开发的。
先决条件 -我使用的是Google登录API。 -我有一个XML代码,其ImageView的ID为“ client_dp”
将此依赖项添加到您的应用程序级别的build.gradle文件中
dependencies {compile 'com.github.bumptech.glide:glide:3.8.0'}
然后将此代码添加到您的活动Java文件中
//Firebase get user info
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser account = firebaseAuth.getCurrentUser();
if (account != null){
//Display User Image from Google Account
//Objects.requireNonNull() prevents getPhotoUrl() from returning a NullPointerException
String personImage = Objects.requireNonNull(account.getPhotoUrl()).toString();
ImageView userImage = findViewById(R.id.client_dp);
Glide.with(this).load(personImage).into(userImage);
}