【问题标题】:Issue swapping image问题交换图像
【发布时间】:2021-11-28 05:27:29
【问题描述】:

我有一个 ProfileActivity:

public class ProfileActivity extends AppCompatActivity {

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

    final ImageView exampleImage = (ImageView) this.findViewById(R.id.exampleImageView);
    exampleImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // [TODO] Implement application behavior when the user clicks the profile picture
            //Toast.makeText(ProfileActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(ProfileActivity.this, GalleryActivity.class));
        }
    });
}

我还有一个名为“GalleryActivity”的活动。这个概念是让用户从图库中选择一张图片,然后用它来替换原始的个人资料图片。

public class GalleryActivity extends AppCompatActivity {
    ImageView imageView;
    private static final int PICK_IMAGE = 100;
    Uri imageUri;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
            startActivityForResult(gallery, PICK_IMAGE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
                    imageUri = data.getData();
                    imageView.setImageURI(imageUri);
            }
    }

}

但是,当我单击图库的图像时,它并没有将其作为新的个人资料图像,而是将我带回原始图像。 发生了什么,我该如何解决?

【问题讨论】:

    标签: java android gallery


    【解决方案1】:

    你可以使用 Github 库,它会对你有所帮助。

    这里是Link

    ImagePicker.Companion.with(this)
                    .crop()                    //Crop image(Optional), Check Customization for more option
                    .compress(1024)            //Final image size will be less than 1 MB(Optional)
                    .maxResultSize(1080, 1080)
                    .start();//Final image resolution will be less than 1080 x 1080(Optional)
    

    关于活动结果。

    @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == Activity.RESULT_OK) {
    
                if (data != null) {
                    selectedFileURI = data.getData();
    
                    if (selectedFileURI != null && !Objects.requireNonNull(selectedFileURI.getPath()).isEmpty()) {
    
                        btnUpdate.setVisibility(View.GONE);
                        civUser.setImageURI(selectedFileURI);
                        Glide.with(context).load(selectedFileURI).into(civUser);
                        btnUploadDp.setVisibility(View.VISIBLE);
    
                    } else {
    
                        Functions.showSnackBar(context, "Cannot Get this Image");
    
                    }
                }
    
            }
        }
    

    参考Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多