【问题标题】:How to identify an imageview drawable?如何识别imageview drawable?
【发布时间】:2012-10-29 07:19:33
【问题描述】:

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

如何识别图片资源是否为R.drawable.imageA,以便将文本设置为不同的颜色?

我曾考虑为ImageView 设置一个标签,但是当我只关心两个选项时,我必须为每个选项设置它。

我试过了:

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

也尝试了getResource,但都没有成功。

【问题讨论】:

    标签: android


    【解决方案1】:

    除了 WebnetMobile.com 的回答之外,您可能只需要一个与当前显示的图像相关的变量。

    IE。启动时:

    boolean isImageA = true;
    

    然后在触发更改背景的事件时将其更改为 false。那么你所要做的就是检查它是真是假。

    【讨论】:

    • 问题是我必须为每个选项设置一个值。我有一个带有很多图标的滚动视图,当用户单击图标 X 时,它会使用 X 图像设置图像视图。如果 A 是黑色背景的那个,并且这个人点击了 A,那没关系。但是如果过一段时间这个人变成了B,我就得把B设置为false(否则,它仍然是白色的),还有C,还有D....
    • 只需使用一个整数,因为它无论如何都会与项目位置相关(即 0-10)。然后您可以轻松地将整数与适当的文本颜色进行比较。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      1. 您是否要为用户提供一个对话框/选择机制,供用户选择图像?

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

      3. 如果 1 的答案是否定的,那么用户如何在您的应用程序中更改图像?

      在您的情况下,您也可以使用反射来实现您的目标。例如,看看这个线程 -> Android, getting resource ID from string?

      稍后添加:

      对于真正通用的解决方案,您可能需要检查 ImageView 本身,以确定要显示的最佳颜色。这已在此线程中得到证明: Automatically change text color to assure readability

      【讨论】:

      • 1. 3.有一个带有图标的scrollview,当用户点击其中一个时,imageview会根据图标设置一个特定的图像。
      • 好的,假设有两个单独的活动发生这种情况,一旦用户做出决定,您就可以将此状态捕获为布尔值(黑色文本/白色文本),然后在您启动时第二个 Activity 可以通过 Intent 参数传入此信息,然后您将在第二个 Activity 的 onCreate 方法中读取该信息并修改 TextView 的颜色...
      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多