Activityの背景色の設定

1919 ワード

エラーメッセージをより目立たせるために、Toast+振動効果以外にactivity全体の背景色を変換することを考慮します.
 
試行1:
activityはwinformのように直接属性を設定していないので、activity全体のlayoutを取得してlayoutの色を設定することでactityの背景色を変える効果を得たいと思っています.
フォームの色を変えることに成功しましたが、この方法は同時にlayoutの中のすべてのコンポーネントの色を変えました! 
 
試行2:(成功)
activityのcontextには、winformのフォームを取得するように見えるgetWindowメソッドがあることに何気なく気づきました. 
WindowsにはsetBackgroundDrawableの方法がありますが、この方法にdrawableタイプのパラメータを提供すればいいのは明らかです.
この方法では、フォームのサブコントロールの背景色は変更されません.
ステップ1:


(1) res -> values -> strings.xml drawable resid: R.drawable.bkcolor  
<resources>
<drawable name="bkcolor">#000000</drawable>
</resources>

(2) colors.xml   color      resid:  R.color.bkcolor1 

 <resources>
   <color name="bkcolor1">#ffffff</color>
</resources>

ステップ2:
    Resources res=getResources(); // res 
    Drawable drawable=res.getDrawable(R.drawable.bkcolor);// drawable 
    getWindow().setBackgroundDrawable(drawable);