/**
2 * 初始化动画,这个就是页卡滑动时,下面的横线也滑动的效果,在这里需要计算一些数据
3 */
private int offset = 0;// 动画图片偏移量
private int bmpW;// 动画图片宽度
private ImageView imageView;
private int currIndex = 0;// 当前页卡编号
private void InitImageView() {
imageView= (ImageView)findViewById(R.id.main_cursor);
bmpW = BitmapFactory.decodeResource(getResources(), android.R.drawable.button_onoff_indicator_on).getWidth();// 获取图片宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;// 获取分辨率宽度
offset = (screenW / 3 - bmpW) / 2;// 计算偏移量
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
imageView.setImageMatrix(matrix);// 设置动画初始位置
}
class ViewPagerListener implements OnPageChangeListener{
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int position) {
//actionBar.setSelectedNavigationItem(position);
Animation animation = new TranslateAnimation(one*currIndex, one*position, 0, 0);//显然这个比较简洁,只有一行代码。
currIndex = position;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
imageView.startAnimation(animation);
}
}
处理小图标位子
最新推荐文章于 2024-06-06 16:28:13 发布