Android TV端应用程序的开发时,在聚焦效果上往往是将图标发大并且凸显到最上层来显示,如下图的效果。
该聚焦凸显效果有两种可行的实现方案,不过太麻烦了。
1)全两层布局,所谓全两层布局,就是图标显示层和聚焦凸显层分开,他们是完全重叠的两层。这种方式在程序上是非常不好办的,既要实现焦点转换又要实现上层凸显控件的消失或不消失状态,状态和逻辑都非常复杂。
2)部分两层布局,所谓部分两层布局,就是底层放需要呈现的图标,上层就只有2个可移动的图标,底层哪个图标获取了焦点,那么上层的焦点发大图标就马上在获取焦点上层显示并带动画,失去焦点时,焦点缩小图标就开始动画。如此反复,这个逻辑比较第一种是要简单很多。
简单的方案:
偶然间看SDK API时看到View.bringToFront()方法,就突发激动,并且认证了它。看来多看API才是王道。
如果不调用View.bringToFront()的话,将会是如下的结果:
可以看出,这个ImageView被左右的ImageView遮挡了,并不是在最上层。
如果加上View.bringToFront()之后,就会浮现在最上层了。
原文地址:http://blog.csdn.net/android_dong/article/details/40866889