关于控件的平滑移动在国外著名网站stack overflow上有很多人问,最终也没人给个确切的回答。
在平板及基于android的智能电视上控件的平滑移动效果对用户的体验至关重要,最近研究了一下。
android 本身并没有对控件平滑移动的支持(可能有,我还不知道),实现控件的平滑移动需借助其动画框架(animation)及经过 扩展的framelayout。
首先看framelayout控件特点:
framelayout 是android布局中自检单的一个,是一个view的容器,只是简单的把每个view放在左上角,每当新添加一个view到framelayout容器时会遮挡先前添加的view。
这就给我们实现平滑移动提供了基础,我们可以在framelayout里添加两个子容器 linearlayout,一个linearlayout负责管理要添加的子控件,另一个linearlayout管理一个imageView控件,滑动时通过在此imageview上附着动画(animation)以达到平滑移动的效果。
在看android上的动画支持,android 2.2之前动画支持两种,view 动画和 帧动画,在包 android.view.animation中实现,android 3.0之后动画框架又添加了重量级动画框架property animation,在包android.animation中实现,代码位置在frmework/base/core/java/android/animation目录,对于控件平滑移动,用view动画中的一种即可
view动画 有四种,其中 tran