2011-02-11 147 views
2

我有一个Activity只包含一个巨大的EditText,全屏。EditText背景颜色

为了与我的应用程序的颜色相匹配,我更改了EditText的背景颜色。但尽管它占据了整个屏幕,但它只改变了第一行。每当我按下enter键,我就去一条新线,那条线获得我想要的背景。

为了做到这一点,我可以设置哪些属性?我只是看不到它!

回答

3

我会将EditText换成视图并在视图上设置背景颜色。

+0

感谢两个答案,这是最简单的给予我只想要一个背景颜色。 – ferostar 2011-02-11 21:02:25

1

为了改变那些已经配备了背景视图,其更好的背景下提供自己的图像,然后使用patch9进行适当调整 我希望帮助

1

@everyone:

在为这种同样的问题寻找解决方案时,我发现此页面。在阅读我认为自己的解决方案时:“必须有更好的方式来做到这一点,而不是制作自己的风格和widgetpaders等etheretera,...

因此,我给你:1代码解决方案的LINE !!!曳没有

<your-widget-component-that-has-a-background-color>.getBackground().setColorFilter(Color.<your-desired-color>, PorterDuff.Mode.MULTIPLY);). 

它的工作原理是这样的:

  • “的getBackground()” 从组件获取背景
  • “setColorFilter” 将在调用过滤背景图像本身
  • “颜色”确定要传递到过滤器的颜色
  • “PorterDuff.Mode。”设置您希望对给定颜色和获取的背景图像执行的操作类型。具有图像编辑软件知识的人(GIMP,Photoshop,...)可能会识别这些模式。基本上,每种模式对颜色如何应用于背景图像都有一定的影响。简单地“覆盖”图像的颜色,而preservind它的渐变,边框和这样的,用“正片叠底”

我还没有深刻地阅读PorterDuff类文档,但说实话,是不是一个强大的一点代码?

随着亲切的问候,

+0

这适用于我与按钮(但状态看起来很有趣,因为颜色过滤器乘以反对蓝色全息高亮或灰色默认状态),但由于某些原因完全相同的代码是不为我的EditTexts做任何事情。 – 2012-09-11 17:13:46

0

如何设置EditText构件的背景色:

editText.setBackgroundColor(Color.RED);