Android 如何知道ImageView是否已更改?

Android 如何知道ImageView是否已更改?,android,imageview,android-camera,drawable,Android,Imageview,Android Camera,Drawable,我有一个Android Studio应用程序,它有一个可绘制的ImageView,然后我点击它,它会打开相机或画廊,你选择图片,然后ImageView会更改为用户选择的图片 我在“创建帐户”活动中使用它,当用户单击“创建帐户”按钮时,如果您没有填写所有字段,它会向您发送警告,但是,在ImageView中,我如何检查它是否有新图片? 我的代码是这样的: btnCreateAccount.setOnClickListener(new View.OnClickListener() {

我有一个Android Studio应用程序,它有一个可绘制的ImageView,然后我点击它,它会打开相机或画廊,你选择图片,然后ImageView会更改为用户选择的图片

我在“创建帐户”活动中使用它,当用户单击“创建帐户”按钮时,如果您没有填写所有字段,它会向您发送警告,但是,在ImageView中,我如何检查它是否有新图片? 我的代码是这样的:

  btnCreateAccount.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            name = editTextName.getText().toString().trim();
            city = editTextCity.getText().toString().trim();
            email = editTextEmail.getText().toString().trim();
            password = editTextPassword.getText().toString().trim();
            birthday = editTextBirthday.getText().toString().trim();
            if (!email.isEmpty() && !name.isEmpty() && !password.isEmpty() && !birthday.isEmpty() && !city.isEmpty()) {

                if (Here is supposed where i want to check if the imageView has changed)
                {

                    Toast.makeText(CreateAccountActivity.this, "You havent choosed a image yet",
                            Toast.LENGTH_LONG).show();
                }

                Toast.makeText(CreateAccountActivity.this, "You filled up all the fields",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(CreateAccountActivity.this, "there are some fields unfilled",
                        Toast.LENGTH_LONG).show();

            }

        }
    });

我不认为你真的想要。您要做的是检查用户是否选择了新图片。在“活动”中选择一个布尔值。在启动时将其设置为false。在imageView中更改可绘制图形时,请将其设置为true。然后只需检查您在if语句中选择的图片即可。

我认为您实际上并不想这样做。您要做的是检查用户是否选择了新图片。在“活动”中选择一个布尔值。在启动时将其设置为false。在imageView中更改可绘制图形时,请将其设置为true。然后,只需在此处检查if语句中选择的图片。

在用户选择图片之前,保存
图像视图的当前
可绘制
,并在
onClick中比较旧图片与当前图片

在选择图像之前:

Drawable oldDrawable = imageView.getDrawable();
onClick
方法中:

if (imageView.getDrawable() == oldDrawable)
      {

           Toast.makeText(CreateAccountActivity.this, "You havent choosed a image yet",
                        Toast.LENGTH_LONG).show();
       }

您还可以使用
imageView.getDrawable()==null
检查imageView是否事先没有任何附加图像

在用户选择图片之前,保存
imageView
的当前
drawable
,并在
onClick
中比较旧图像和当前图像

在选择图像之前:

Drawable oldDrawable = imageView.getDrawable();
onClick
方法中:

if (imageView.getDrawable() == oldDrawable)
      {

           Toast.makeText(CreateAccountActivity.this, "You havent choosed a image yet",
                        Toast.LENGTH_LONG).show();
       }
您还可以使用
imageView.getDrawable()==null
检查imageView是否事先没有任何附加图像