Android 自定义View实现画背景和前景(ViewGroup篇)
在定义ListView的Selector时候,有个drawSelectorOnTop的属性,如果drawSelectorOnTop为true的话,Selector的效果是画在List Item的上面(Selector是盖住了ListView的文字或者图片),即Foreground前景。如果drawSelectorOnTop为false的话,Selector的效果是画在List Item的下面,即Background背景。由于项目中恰好需要自定义View,需要实现此效果。 本文借ListView的代码来剖析一下, ListView完成此部分功能在frameworks\base\core\java\android\widget\AbsListView.java文件中。 用mSelector即ListView要画的Selector(资源文件),而mSelectorRect则是想要画的区域。 /** * Indicates whether the list selector should be drawn on top of the children or behind */ boolean mDrawSelectorOnTop = false; 决定画前景还是背景 /** * The drawable used to draw the selector */ Drawable