【问题标题】:setting ImageButton's background transparent with Theme.Light in android在android中使用Theme.Light设置ImageButton的背景透明
【发布时间】:2012-11-11 02:17:07
【问题描述】:

如何将 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 背景颜色的解决方案。我怎样才能以编程方式实现同​​样的事情?任何帮助都非常感谢。谢谢!

【问题讨论】:

标签: java android


【解决方案1】:

我不得不做类似的事情,我使用了透明的 png 9patch。然后你可以将它设置为背景,例如:

deleteBtn.setBackgroundResource(R.drawable.transparent_bground);

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

【讨论】:

    【解决方案2】:

    即使这是一种回答,这就是问题所在。

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

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

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 2012-03-01
      • 2010-12-02
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2016-10-09
      相关资源
      最近更新 更多