2017-06-15 17 views
0

私はまだ背景色を設定していないTextViewを持っています。私は背景色をしたいですが、私が行うとき((ColorDrawable) mTextView.getBackground()).getColor()私は明らかにnullポインタの例外を取得します。背景色が設定されていないと、Androidは親ビューの背景色を取得します

TextViewのビュー階層をトラバースして、TextViewがバックグラウンドとして使用する階層内の最新の背景色を見つける方法を教えてください。

および階層に背景色が設定されていない場合、どのように背景色が決定されますか?どうすればその状況を判断できますか?背景が設定されていないことをどのように伝えることができますか?

私は基本的には、明示的に設定されていないビューの背景色を決定するのが難しいです。

+0

まず、ビュー階層内の位置を確認する必要があります。 linearlayoutl.getChildAt(index)のように –

答えて

0

階層内のトラバースは、あなたが使用したコントロールに依存します。

今、レイアウトの色を取得するには、背景が単色の場合はAPI 11+でしか実行できません。

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

あなたはそれに基づいて操作を行うことができますカラーコードを得れば。

関連する問題