我有一个活动,其中包含一个用于显示用户照片的ImageView。 用户从手机图库中选择一个图像,当他完成后,图像上传到firebase存储并返回到ImageView。个人资料图片消失在背按按钮
问题是:当用户转到另一个活动(或按下后退按钮)并返回到UserProfile活动时,图像不再存在于ImageView内部。
如何在UserProfile活动启动时加载图像?
这是我的用户配置活动
public class UserProfile extends AppCompatActivity {
private static final int GALLERY_INTENT = 2 ;
private ImageButton userImage;
private Button save_changes;
private EditText user_name;
private StorageReference mStorage;
private Uri mImageUri ,downloadUri;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
mAuth = FirebaseAuth.getInstance();
userImage = (ImageButton) findViewById(R.id.profileImage);
save_changes = (Button) findViewById(R.id.savechanges);
user_name = (EditText) findViewById(R.id.user_name2);
mStorage = FirebaseStorage.getInstance().getReference();
userImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent();
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, GALLERY_INTENT);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == GALLERY_INTENT && resultCode == RESULT_OK){
Uri imageUri = data.getData();
CropImage.activity(imageUri)
.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) {
mImageUri = result.getUri();
}
else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
save_changes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = user_name.getText().toString();
StorageReference filepath = mStorage.child("photos").child(mAuth.getCurrentUser().getUid()).child(mImageUri.getLastPathSegment());
filepath.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
downloadUri = taskSnapshot.getDownloadUrl();
Picasso.with(UserProfile.this).load(downloadUri).into(userImage);
Toast.makeText(UserProfile.this,"התמונה עלתה בהצלחה",Toast.LENGTH_SHORT).show();
}
});
}
});
}
}
如果即时通讯使用Uri从firebase存储中检索图像?我能做什么? – Nauruto
然后你有请求firebase,然后从他们的图像。但是你甚至可以保存位图。 –
林不太熟悉位图..你可以看看我的代码,并解释我需要做什么改变? – Nauruto