【问题标题】:How can I validate an imageview? [duplicate]如何验证图像视图? [复制]
【发布时间】:2021-12-15 20:36:24
【问题描述】:

我有一个 imageview 作为一个按钮,它具有我想要验证的默认图像(app:srcCompat="@drawable/image_one"),这个按钮有一个事件,如果它正确执行事件,我会更改图像来自代码 setImageResource(R.drawable.image_two)。

如何验证我的 imageview 是否具有默认图像(image_one)或者我是否更改了图像(image_two)?

XML:

<ImageView
    android:id="@+id/image_view"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:layout_margin="5dp"
    app:srcCompat="@android:drawable/image_one" />

代码:

ImageView btnImage;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnImage = findViewById(R.id.image_view);

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

}
//image validation
public void validateImage() {
  
}

【问题讨论】:

    标签: android validation imageview android-imageview


    【解决方案1】:

    使用 ImageView.getDrawable 获取视图中的可绘制对象。检查它是否等于(使用 .equals,而不是 ==)与您希望它拥有的可绘制对象。

    【讨论】:

      【解决方案2】:

      很简单你用Glide

          String image_two_expected = "https://akcdn.detik.net.id/visual/2021/03/03/ilustrasi-virus-covid-19-photo-created-by-wirestock-via-freepik_169.jpeg?w=715&q=90"
      
          try {
                  if (image_two_expected != null) {
                  Glide.with(context)
                          .placeholder(R.drawable.your_default_image)
                          .load(image_two_expected)
                          .into(view);
              }
              } catch (Exception ex) {
                  Log.e("ERROR", "LOAD IMAGE: " + ex);
              }
      

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案3】:

      您可以使用标签属性。在初始状态下,将您的 imageView 设置为

      <ImageView
          android:id="@+id/image_view"
          android:layout_width="75dp"
          android:layout_height="75dp"
          android:layout_margin="5dp"
          android:tag="1"
          app:srcCompat="@android:drawable/image_one" />
      

      然后在您更改图像时的单击操作中,将 imageView 的标签设置为 2。您可以检查标签是 1 还是 2 来决定要做什么。

      【讨论】:

      • 这实际上并不能验证图像的变化。并且在实际上并没有测试您想要的东西时将代码添加到“测试”中是没有意义且脆弱的。
      • @GabeSechan 图像验证不用于检查图像是否是预期的图像,这不是我理解的重点,只是想检查状态是否是一两个。为此,您不需要处理资源。这不是 UI 测试。
      • 这不是这样做的。您正在使用没有其他效果的代码测试错误的东西。这实际上并没有测试他们想要做什么。这不仅仅是一个无用的测试,它还会对你的代码库产生负面影响,因为它会让你认为某些东西已经过测试,但实际上却添加了不必要的代码。
      猜你喜欢
      • 2019-08-04
      • 2012-08-29
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 2017-01-19
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多