viewpager怎么添加滑动animation效果?

fghnn 2013-01-11 05:16:05
我想要在viewpager左右切换的时候添加渐变的滑动效果,怎么添加呢?修改源码也可以
...全文
622 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
_周星星 2014-05-04
  • 打赏
  • 举报
回复
public class ViewPagerTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.85f; private static final float MIN_ALPHA = 0.5f; @SuppressLint("NewApi") public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); Log.d("dd",view.getTag()+" pageWidth:"+pageWidth+" pageHeight:"+pageHeight+" position:"+position); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 1) { // [-1,1] // Modify the default slide transition to shrink the page as well float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position)); float vertMargin = pageHeight * (1 - scaleFactor) / 2; float horzMargin = pageWidth * (1 - scaleFactor) / 2; if (position < 0) { view.setTranslationX(horzMargin - vertMargin / 2); } else { view.setTranslationX(-horzMargin + vertMargin / 2); } // Scale the page down (between MIN_SCALE and 1) view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); // Fade the page relative to its size. view.setAlpha(MIN_ALPHA +(scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA)); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } } }
_周星星 2014-05-04
  • 打赏
  • 举报
回复
pager.setPageTransformer(true, new ViewPagerTransformer());//设置滑动时的动画效果
DrSmart 2013-05-21
  • 打赏
  • 举报
回复
注意楼上说的都是属性动画,在android 3.0后才能支持
j_f0001 2013-05-21
  • 打赏
  • 举报
回复
还有官方的一段代码,你参考一下,改改能实现你的功能
@SuppressLint("NewApi")
	public class ZoomOutPageTransformer implements ViewPager.PageTransformer {     
		private static final float MIN_SCALE = 0.85f;     
		private static final float MIN_ALPHA = 0.5f;     
		@SuppressLint("NewApi")
		public void transformPage(View view, float position) 
		{        
			int pageWidth = view.getWidth();        
			int pageHeight = view.getHeight();   
			Log.d("dd",view.getTag()+"  pageWidth:"+pageWidth+"  pageHeight:"+pageHeight+" position:"+position);
			if (position < -1) { // [-Infinity,-1)             // This page is way off-screen to the left.             
				view.setAlpha(0);         
			} else if (position <= 1) { // [-1,1]             // Modify the default slide transition to shrink the page as well             
				float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));            
				float vertMargin = pageHeight * (1 - scaleFactor) / 2;             
				float horzMargin = pageWidth * (1 - scaleFactor) / 2;            
				if (position < 0) {                
					view.setTranslationX(horzMargin - vertMargin / 2);           
				} 
				else {                
					view.setTranslationX(-horzMargin + vertMargin / 2);            
				}              // Scale the page down (between MIN_SCALE and 1)             
				view.setScaleX(scaleFactor);            
				view.setScaleY(scaleFactor);              // Fade the page relative to its size.             
				view.setAlpha(MIN_ALPHA +(scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA));       
			} else { // (1,+Infinity]             // This page is way off-screen to the right.            
				view.setAlpha(0);        
			} 
		}
	}
j_f0001 2013-05-21
  • 打赏
  • 举报
回复

	
		viewPager=(ViewPager)this.findViewById(R.id.viewPager);
		
		PageTransformer pageTransformer=new PageTransformer() {
			
			@Override
			public void transformPage(View arg0, float arg1) {
				arg0.setAnimation(AnimationUtils.loadAnimation(ViewPagerActivity.this, android.R.anim.slide_out_right));
			}
		};
		
		viewPager.setPageTransformer(true, pageTransformer);
无盐andy 2013-05-21
  • 打赏
  • 举报
回复
一起分享下啊~~~~~~~~
指间绕温柔 2013-05-20
  • 打赏
  • 举报
回复
楼主你的问题解决了吗 能教下我吗
Oo_Oo_ 2013-03-20
  • 打赏
  • 举报
回复
重写,必须的
chuanyunglin 2013-03-20
  • 打赏
  • 举报
回复
新版的 android-support-v4.jar 針對 ViewPager 多了一個 interface 可以客製化切換頁面時的動畫. 可參考官方的網頁, 裡面有兩個例子. http://developer.android.com/training/animation/screen-slide.html
傲慢的上校 2013-01-17
  • 打赏
  • 举报
回复
可能需要重写了吧。。。
liuguoqing2 2013-01-16
  • 打赏
  • 举报
回复
渐变的滑动效果是什么样的?清楚点
fghnn 2013-01-14
  • 打赏
  • 举报
回复
引用 1 楼 banketree 的回复:
重写viewpager
这样太麻烦
半棵树 2013-01-12
  • 打赏
  • 举报
回复
重写viewpager

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧