以编程方式更改布局的前景色

12
我想要改变一个LinearLayout的前景色。 这是我的代码:layout.setForeground(new ColorDrawable(getResources().getColor(R.color.svbackclr))); 但是这个调用需要最低api级别23。那么如何在23之前的api上实现同样的效果呢?
3个回答

12

正如 @Gaurav 建议的那样,您可以通过编程方式使用 FrameLayout 的前景色,方法如下:

按以下方式在程序中使用 FrameLayout 的前景色,正如 @Gaurav 所建议的。

int color = R.color.black_trans_60;
frm.setForeground(new ColorDrawable(ContextCompat.getColor(mContext, color)));

5
这在 API 16 中无法运行,因为它需要 API 23 才能使用。 - Vivek Barai

9
我建议使用FrameLayout,在其中您可以使用setForeground()函数。这适用于任何API级别。

4
这是一个文档错误。从API Level 1开始,setForeground()存在于FrameLayout上;但从API Level 23开始,它只在View上存在。
因此,最好扩展FrameLayout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接