两种实现view在Z轴置顶的方法

最近项目需要在触摸到某一个控件时让改控件位于Z轴的最上方,实现这个效果有两种方法。

1,通过view.bringToFront()方法,直接可以使得当前作用view位于最Z轴顶端,但是会刷新当前整个界面的view,由于本人项目中的view是可以拖动的,如果使用该方法已经拖放成功的view会回到最初的位置,故抛弃了该方法。

2,在Android5.0后引入了setZ(100.0f)方法,该方法旨在改变view在当前界面下的z轴坐标,当你需要将view设为z轴最顶端控件时只需要实现view.setZ(100.0f)方法。

3,二者使用起来各有千秋,第一种view.bringToFront()方法看源码可以知道,系统先将view移除出当前viewGroup,然后再添加进来,重新绘制当前界面,而setZ()方法就是单纯的将当前view的坐标移动到你设置的坐标处。

4,在使用setZ()方式实现拖动时当前view位于z轴最顶端,可以监听当前view的触摸方法,在MotionEvent.ACTION_DOWN条件下设置setZ(100.0f),在MotionEvent.ACTION_UP条件下实现setZ(90.0f)将view从Z轴最顶端移下来,从而让下一次触摸的view独自在最顶端。

你可能感兴趣的:(android)