2

当背景发生变化时,如何改变文本的颜色对比度?例如,如果我有黑色背景,黑色文本将不可见。

4

1 回答 1

4

这可能会有所帮助:http: //developer.android.com/guide/topics/resources/color-list-resource.html

这是一种您可以设置颜色的方法,该颜色将根据特定情况发生变化。

例如,假设您有一个 TextView,您希望在启用时显示白色文本,在禁用时显示黑色文本。您可以使用上面链接中的引用在 xml 文件中进行设置,然后在定义 TextView 的 xml 布局中将 android:textColor 设置为 @color/my_text_color。(my_text_color 是您创建的 xml 颜色列表文件)

然后,随着 TextView 从启用更改为禁用(或您最终在 xml 文件中设置的任何内容),颜色也会自动更改。

这是一种方法。但是,您可能想尝试澄清您正在寻找的内容,因为您的问题并不完全清楚。

更新

在马特的评论之后,您可以使用以下方法来获取反转的颜色值。可能有更好的方法,但这应该可行。

private int getInverseColor(int color){
    int red = Color.red(color);
    int green = Color.green(color);
    int blue = Color.blue(color);
    int alpha = Color.alpha(color);
    return Color.argb(alpha, 255-red, 255-green, 255-blue);
}

您可以使用其中一种 getTextColor() 方法以编程方式从 TextView 等视图中获取颜色 int。您可能必须像我上面链接的那样修改颜色状态列表才能获得所需的颜色。然后将该颜色传递给上面的方法以获取反转颜色 int 并使用 setTextColor() 方法之一进行设置。

于 2011-04-22T23:44:20.033 回答