在Android中使用Theme.Light设置ImageButton的背景透明

时间:2011-08-21 07:24:14

标签: java android

如何设置ImageButton'透明'的背景颜色?

当我使用默认的android主题尝试时,以下代码段有效,但是使用'Theme.Light',我看到灰色背景。

ImageButton deleteBtn = new ImageButton( this );
deleteBtn.setImageResource( R.drawable.delete_big );
deleteBtn.setBackgroundColor(android.R.color.transparent);

(我需要动态创建这些按钮..我已经看过使用android的layout.xml文件指定@null背景颜色的解决方案。如何以编程方式实现相同的功能?非常感谢任何帮助。谢谢!

image with gray background here:

2 个答案:

答案 0 :(得分:1)

我必须做类似的事情,我使用透明的png 9patch。然后你可以用以下内容将它设置为背景:

deleteBtn.setBackgroundResource(R.drawable.transparent_bground);

修改:here is a 9 patch you can use.将其保存在您的一个res / drawable文件夹中。

答案 1 :(得分:0)

虽然这有点回答,但这里出了什么问题。

注意颜色。 android.R.color.transparent实际上是一个引用查找表的整数,每次在Java中使用Android设置颜色时,它都会采用表示颜色的整数。

现在,这是一个棘手的部分:这里发生的是它将bg颜色设置为查找表索引,这恰好转换为灰色。如果我没记错的话,getResources().getColor(id)是一个可以从上下文或活动中调用以获得正确颜色的函数。