个人资料图片未显示在圆圈imageView中

时间:2019-07-15 05:06:50

标签: android android-imageview

在我使用过的SettingsActivity下:

 public class SettingsActivity extends AppCompatActivity
     {

         private Button UpdateAccountSettings;
         private EditText userName, userStatus;
         private CircleImageView userProfileImage;

         private String currentUserID;
         private FirebaseAuth mAuth;
         private DatabaseReference RootRef;


         private static final int GalleryPick = 1;
         private StorageReference UserProfileImagesRef;

         private ProgressDialog loadingBar;
         private Toolbar SettingsToolBar;



         @Override
         protected void onCreate(Bundle savedInstanceState)
         {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_settings);


             mAuth = FirebaseAuth.getInstance();
             currentUserID = mAuth.getCurrentUser().getUid();
             RootRef = FirebaseDatabase.getInstance().getReference();
             UserProfileImagesRef = FirebaseStorage.getInstance().getReference().child("Profile Images");


             InitializeFields();


             userName.setVisibility(View.VISIBLE);



             UpdateAccountSettings.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view)
                 {
                     UpdateSettings();
                 }
             });


             RetrieveUserInfo();


             userProfileImage.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view)
                 {
                     Intent galleryIntent = new Intent();
                     galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
                     galleryIntent.setType("image/*");
                     startActivityForResult(galleryIntent, GalleryPick);
                 }
             });
         }



         private void InitializeFields()
         {
             UpdateAccountSettings = (Button) findViewById(R.id.update_settings_button);
             userName = (EditText) findViewById(R.id.set_user_name);
             userStatus = (EditText) findViewById(R.id.set_profile_status);
             userProfileImage = (CircleImageView) findViewById(R.id.set_profile_image);
             loadingBar = new ProgressDialog(this);

             SettingsToolBar = (Toolbar) findViewById(R.id.settings_toolbar);
             setSupportActionBar(SettingsToolBar);
             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
             getSupportActionBar().setDisplayShowCustomEnabled(true);
             getSupportActionBar().setTitle("Account Settings");
         }




         @Override
         protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
         {
             super.onActivityResult(requestCode, resultCode, data);

             if (requestCode==GalleryPick  &&  resultCode==RESULT_OK  &&  data!=null)
             {
                 Uri ImageUri = data.getData();

                 CropImage.activity()
                         .setGuidelines(CropImageView.Guidelines.ON)
                         .setAspectRatio(1, 1)
                         .start(this);
             }

             if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
             {
                 CropImage.ActivityResult result = CropImage.getActivityResult(data);

                 if (resultCode == RESULT_OK)
                 {
                     loadingBar.setTitle("Set Profile Image");
                     loadingBar.setMessage("Please wait, your profile image is updating...");
                     loadingBar.setCanceledOnTouchOutside(false);
                     loadingBar.show();

                     Uri resultUri = result.getUri();


                     StorageReference filePath = UserProfileImagesRef.child(currentUserID + ".jpg");

                     filePath.putFile(resultUri).addOnCompleteListener(new
 OnCompleteListener<UploadTask.TaskSnapshot() {
                         @Override
                         public void onComplete(@NonNull Task<UploadTask.TaskSnapshot task)
                         {
                             if (task.isSuccessful())
                             {
                                 Toast.makeText(SettingsActivity.this, "Profile Image uploaded Successfully...", Toast.LENGTH_SHORT).show();

                                 final String downloadUrl = task.getResult().getStorage().getDownloadUrl().toString();

                                 RootRef.child("Users").child(currentUserID).child("image")
                                         .setValue(downloadUrl)
                                         .addOnCompleteListener(new OnCompleteListener<Void() {
                                             @Override
                                             public void onComplete(@NonNull Task<Void task)
                                             {
                                                 if (task.isSuccessful())
                                                 {
                                                     Toast.makeText(SettingsActivity.this, "Image save in Database,
 Successfully...", Toast.LENGTH_SHORT).show();
                                                     loadingBar.dismiss();
                                                 }
                                                 else
                                                 {
                                                     String message = task.getException().toString();
                                                     Toast.makeText(SettingsActivity.this, "Error: " + message,
 Toast.LENGTH_SHORT).show();
                                                     loadingBar.dismiss();
                                                 }
                                             }
                                         });
                             }
                             else
                             {
                                 String message = task.getException().toString();
                                 Toast.makeText(SettingsActivity.this, "Error: " + message, Toast.LENGTH_SHORT).show();
                                 loadingBar.dismiss();
                             }
                         }
                     });
                 }
             }
         }




         private void UpdateSettings()
         {
             String setUserName = userName.getText().toString();
             String setStatus = userStatus.getText().toString();

             if (TextUtils.isEmpty(setUserName))
             {
                 Toast.makeText(this, "Please write your user name first....", Toast.LENGTH_SHORT).show();
             }
             if (TextUtils.isEmpty(setStatus))
             {
                 Toast.makeText(this, "Please write your status....", Toast.LENGTH_SHORT).show();
             }
             else
             {
                 HashMap<String, Object profileMap = new HashMap<();
                 profileMap.put("uid", currentUserID);
                 profileMap.put("name", setUserName);
                 profileMap.put("status", setStatus);
                 RootRef.child("Users").child(currentUserID).updateChildren(profileMap)
                         .addOnCompleteListener(new OnCompleteListener<Void() {
                             @Override
                             public void onComplete(@NonNull Task<Void task)
                             {
                                 if (task.isSuccessful())
                                 {
                                     SendUserToMainActivity();
                                     Toast.makeText(SettingsActivity.this, "Profile Updated
 Successfully...", Toast.LENGTH_SHORT).show();
                                 }
                                 else
                                 {
                                     String message = task.getException().toString();
                                     Toast.makeText(SettingsActivity.this, "Error: " + message,
 Toast.LENGTH_SHORT).show();
                                 }
                             }
                         });
             }
         }



         private void RetrieveUserInfo()
         {
             RootRef.child("Users").child(currentUserID)
                     .addValueEventListener(new ValueEventListener() {
                         @Override
                         public void onDataChange(DataSnapshot dataSnapshot)
                         {
                             if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("image"))))
                             {
                                 String retrieveUserName = dataSnapshot.child("name").getValue().toString();
                                 String retrievesStatus = dataSnapshot.child("status").getValue().toString();
                                 String retrieveProfileImage = dataSnapshot.child("image").getValue().toString();

                                 userName.setText(retrieveUserName);
                                 userStatus.setText(retrievesStatus);
                                 Picasso.get().load(retrieveProfileImage).into(userProfileImage);

                             }
                             else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name")))
                             {
                                 String retrieveUserName = dataSnapshot.child("name").getValue().toString();
                                 String retrievesStatus = dataSnapshot.child("status").getValue().toString();

                                 userName.setText(retrieveUserName);
                                 userStatus.setText(retrievesStatus);
                             }
                             else
                             {
                                 userName.setVisibility(View.VISIBLE);
                                 Toast.makeText(SettingsActivity.this, "Please set & update your profile information...",
 Toast.LENGTH_SHORT).show();
                             }
                         }

                         @Override
                         public void onCancelled(DatabaseError databaseError) {

                         }
                     });
         }



         private void SendUserToMainActivity()
         {
             Intent mainIntent = new Intent(SettingsActivity.this, MainActivity.class);
             mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
             startActivity(mainIntent);
             finish();
         }
     }

1 个答案:

答案 0 :(得分:2)

您可以将其添加到build.gradle并标记依赖项

mongodump --db mydb --out /var/www/html/'date +"%m-%d-%y"'

用于创建Circle ImageView

尝试

implementation 'de.hdodenhof:circleimageview:3.0.0'

为加载图像添加了毕加索库

Picasso Library