android获取状态栏高度+属性动画注意事项

来源:互联网 发布:淘宝客服招聘图片 编辑:程序博客网 时间:2024/05/16 05:42

状态栏就是手机最上方显示电量 wifi标记的东西,有时候得的考虑他的高度。不然有问题

        //获取状态栏高度
        int statusBarHeight1 = -1;
        //获取status_bar_height资源的ID
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            //根据资源ID获取响应的尺寸值
            statusBarHeight1 = getResources().getDimensionPixelSize(resourceId);
        }


属性动画实例:

private ObjectAnimator animator;private ObjectAnimator animator1;private AnimatorSet set;
animator = ObjectAnimator.ofFloat(image002, "x", x, 0);animator.setDuration(1000);animator1 = ObjectAnimator.ofFloat(image002, "y", y-statusBarHeight1, h - h001-statusBarHeight1);animator1.setDuration(1000);set = new AnimatorSet();set.playTogether(animator, animator1);set.start();

注意事项:此处ofFloat里面的坐标是当前view也就是image002相对于父布局的坐标。不是相对屏幕的坐标。父布局为activity的话,需要考虑状态栏以及actionbar的高度。

下面是设置速率变化的,可据此实现抛物线自由落体等效果

AccelerateDecelerateInterpolator        在动画开始与介绍的地方速率改变比较慢,在中间的时侯加速
AccelerateInterpolator        在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator        动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator        在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator        在动画的以均匀的速率改变

下面是属性:

 alpha 透明度 
 rotation z轴旋转
 rotationX x轴旋转 
 rotationY y轴旋转 
 translationX x水平偏移
 translationY y水平偏移
 ScaleX x轴缩放 
 ScaleY y轴缩放

background 背景

总结:属性动画,只要是对象有getter和setter的属性都能用,对任何属性都有用,本质就是调用对象的setter和getter方法,且不限制对象是否是view都行。

0 0
原创粉丝点击