2017-06-15 190 views
0

我有一个TextView,我还没有设置背景颜色。我想去背景颜色,但当我做((ColorDrawable) mTextView.getBackground()).getColor()我显然得到一个空指针异常。Android获取父视图的背景颜色,如果没有背景颜色集

我该如何遍历TextView的视图层次结构,以便在TextView使用背景作为结果的层次结构中查找最新的背景色

and 如果在层次结构中没有设置背景颜色,我将如何确定背景颜色?我将如何确定这种情况?我怎么知道没有设置背景?

我基本上很难确定视图的背景颜色,当它没有明确设置。

+0

您必须先查看其在视图层次结构中的位置。像linearlayoutl.getChildAt(index) –

回答

0

遍历层次取决于您使用的是什么控制

现在,要获得布局的颜色,只能在API 11+中完成,如果您的背景是纯色。

  int color = Color.TRANSPARENT; 
      Drawable background = view.getBackground(); 
      if (background instanceof ColorDrawable) 
      color = ((ColorDrawable) background).getColor(); 

,一旦你得到的ColorCode你可以以此为基础进行操作。