我的应用程序中有一个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的答案是否,则用户如何更改应用程序中的图像?
在您的情况下,您也可以使用反射来实现自己的目标。例如,查看此线程 -> Android,从字符串中获取资源ID?
稍后添加:
对于真正的概括解决方案,您可能需要检查映像视图本身,以确定要显示的最佳颜色。在此线程中已经证明了这一点:自动更改文本颜色以确保可读性