这个属性动画 是在
Fragment做数据源 +适配器继承FragmentPagerAdapter+ViewPager 中用通过手指左右滑动给相应的位置添加动画
思路:
第一步:获取手机屏幕的宽度
第二步: 重写 ValueAnimator(int start,int end);方法 用代码实现属性动画并设置开始和结束的位置
步骤:
第一步;获取手机屏幕的宽度
在初始化控件的中写
(其中 screenw是一个int类型的变量用来接收屏宽; )
//获取屏幕的宽度和高度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
screenW = dm.widthPixels;(dm.heightPixels)宽度/高度
(取屏幕二分之一的长度为标准)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(screenW/2, LayoutParams.MATCH_PARENT);
vline.setLayoutParams(params);
第二步 用代码实现属性动画并设置开始和结束的位置
(提示:这个动画设置移动区域是手机半个屏的宽度来判定是否执行的 她的开始位置由0到1/2宽度
结束的位置1/2)
重写 ValueAnimator(int start,int end);方法
/**
* 动画* @param start 开始位置
* @param end 结束位置
*/
private void valueAnimator(int start,int end) {
ValueAnimator animator = ValueAnimator.ofInt(start,end);
animator.setDuration(300);
animator.start();
animator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
// TODO Auto-generated method stub
int value = (Integer) animation.getAnimatedValue();
vline.layout(value, 0, value+vline.getWidth(), vline.getHeight());
}
});
}