如何识别可绘制的图像视图



我的应用程序中有一个ImageView,其可绘制可由用户更改,而黑色的TextView可以更改。如果用户将此图像更改为具有黑色背景的图像,他将无法看到文本。

如何确定图像资源是否为 R.drawable.imageA,以便我可以将文本设置为不同的颜色?

我考虑过为ImageView设置标签,但是当我只关心两个选项时,我将不得不为每个选项设置它。

我尝试了:

if (imageview.getDrawable.equals(R.drawable.imageA)) {
    textView.setText(Color.WHITE);
    }

也尝试使用getResource,但两项都可以使用。

除了webnetmobile.com的答案外,您可能只有与当前显示的图像相关的变量。

即。启动时:

boolean isImageA = true;

,然后在事件更改背景时将其更改为false。然后,您要做的就是检查它是对还是错。

你不能。您需要将其存储在一边,并用于比较,或扩展imageView并嵌入该功能(即,添加getDrawableId())

  1. 您是否要为用户提供用户选择图像的对话框/选择机制?

  2. 如果上述答案是肯定的,那么这是您应该能够在应用程序中捕获此决定的地方,然后修改文本视图的颜色。

  3. 如果对1的答案是否,则用户如何更改应用程序中的图像?

在您的情况下,您也可以使用反射来实现自己的目标。例如,查看此线程 -> Android,从字符串中获取资源ID?

稍后添加:

对于真正的概括解决方案,您可能需要检查映像视图本身,以确定要显示的最佳颜色。在此线程中已经证明了这一点:自动更改文本颜色以确保可读性

最新更新