Use cmoposite pattern to implement composite drawable.

This commit is untested and debuged.

Change-Id: Ia20ac75fded9d2309cf057c96af130fe42b42106