如下这样一个登录界面,如果不做任何处理,键盘会遮挡用户名和密码输入框,导致用户体验非常差
为了解决这一问题,我做的效果是当键盘弹起的时候,使logo做缩小动画,下面登录整体控件做上移,收起时做放大和下移。键盘监听请参考 https://github.com/guohaiyang1992/KeyBoardEventBus
@Override
public void onKeyBoardShow() {
HxLogUtils.e("lwjing", "键盘显示");
//缩小动画
zoomOut(tv_login_logo,0f,0f);
//上移动画
goUp(ll_login,tv_login_logo);
}
@Override
public void onKeyBoardHidden() {
HxLogUtils.v("lwjing", "键盘隐藏");
//放大动画
zoomIn(tv_login_logo,0f);
goDonw(ll_login,tv_login_logo);
}
属性动画平移 缩放:
private void goUp(View view,View view2) {
ObjectAnimator transYAnim = ObjectAnimator.ofFloat(view, "translationY", 0,-view2.getHeight()+20);
transYAnim.setDuration(ANIM_DURATION);
transYAnim.start();
}
/**
* 缩小
*属性动画
* @param view
*/
public void zoomOut(final View view, float scale, float dist) {
view.setPivotY(0);
view.setPivotX(view.getWidth() / 2);
AnimatorSet mAnimatorSet = new AnimatorSet();
ObjectAnimator mAnimatorScaleX = ObjectAnimator.ofFloat(view, "scaleX", 1.0f, scale);
ObjectAnimator mAnimatorScaleY = ObjectAnimator.ofFloat(view, "scaleY", 1.0f, scale);
ObjectAnimator mAnimatorAlpha = ObjectAnimator.ofFloat(view,