为了账号安全,请及时绑定邮箱和手机立即绑定
  • ViewPager设置动画

    查看全部
  • 动画的实现方法
    查看全部
  • viewPager 切换动画
    查看全部
  • 3.0以上只需要一行代码
    查看全部
  • 自定义ViewPager实现动画切换效果(主要是Translation和Scale) 实现切换时的动画需要哪些准备: 1. 首先需要拿到当前切换的两个View --> 通过Map存储与获取 2. 设置一个动画的梯度值。-->通过offset,OffsetPixels 有三种方式实现ViewPager页面切换动画: 1. 通过API提供的源码(只支持Android3.0以上版本),调用setPageTransformer(true,new XxxTransformer()); 2. 自定义ViewPager; 3. 用开源项目JazzyViewPager实现ViewPager切换动画。
    查看全部
  • 如图,是自定义的方法 animStack(),实现动画效果: public void animStack(View left, View right, float offset, int offsetPixels){ if (right!=null){ // 从0页到1页,offset:从0到1 mScale = (1-MIN_SACLE) * offset + MIN_SACLE; // 因为offset一开始是0,所以mScale一开始是等于MIN_SACLE,然后逐渐增加到1。 mTrans = -getWidth()-getPageMargin() + offsetPixels; // getPageMargin()是边距。offsetPixels会从0变到屏幕的宽度,mTrans从负的屏宽变为0。 //mTrans = -(1- offset ) * left.getWidth(); // 设置动画 ViewHelper.setScaleX(right,mScale); ViewHelper.setScaleY(right,mScale); ViewHelper.setTranslationX(right,mTrans); } if (left!=null){ left.bringToFront(); // 保证左边的页面始终在最上面。 } }
    查看全部
  • 自定义ViewPager实现动画切换效果 新建一个类ViewPagerWithTransformerAnim,继承ViewPager,继承它的两个构造方法。 其余代码: 成员变量: private View mLeft; private View mRight; private float mTrans; private float mScale; private static final float MIN_SACLE = 0.6f; private Map<Integer,View> mChildren = new HashMap<Integer, View>(); // 添加View public void setViewForPosition(View view,int position){ mChildren.put(position,view); } // 移除View public void removeViewFromPosition(int position){ // Integer position mChildren.remove(position); } 重写onPageScrolled(): protected void onPageScrolled(int position, float offset, int offsetPixels) { super.onPageScrolled(position, offset, offsetPixels); /** *在这里打印日志,观察position和offset在ViewPager滑动的时候产生的变化,我们发现: *0~1: position == 0 , offset = 0~1 *1~0: position == 0 , offset = 1~0 */ //直接使用position或者getCurrentItem()和getChildItem()都有可能出错。通过Map存储与获取会比较稳定。 mLeft = mChildren.get(position); mRight = mChildren.get(position+1); animStack(mLeft,mRight,offset,offsetPixels); }
    查看全部
  • 谷歌提供的ViewPager切换动画为何只支持Android3.0以上版本?因为动画使用了属性动画。 属性动画仅支持Android3.0以上版本,如果要向下兼容,可以通过 NineOldAndroids 进行实现。 A页切换到B页: A页的position由0.0渐变到-1.0; B页的position由1.0渐变到0.0。 1、ViewPager.setPageTransformer实现切换动画; 2、修改ViewPager内部代码 + 使用NineOldAndroids代替属性动画实现向下兼容; 3、观察API的规律,自定义我们的切换动画。 4、自定义ViewPager实现动画切换效果
    查看全部
  • 自定义RotateDownPageTransformer 实现 ViewPager.PageTransformer接口, 添加成员变量: private static final float MAX_ROTATE = 20f; private float mRot; 并重写transformPage(): Log.i("TAG","view="+view+",position="+position); int pageWidth = view.getWidth(); if (position < -1) { ViewHelper.setRotation(view,0); // 不做旋转 } /** * A页切换到B页:A页的position由0.0渐变到-1.0;B页的position由1.0渐变到0.0 */ else if (position <= 0) { // [-1,0] 此为A页 // 0 ~ -20 的变化 mRot = position * MAX_ROTATE; // 设置旋转中心为底线中点 ViewHelper.setPivotX(view,pageWidth/2); ViewHelper.setPivotY(view,view.getMeasuredHeight()); // 设置动画效果 ViewHelper.setRotation(view,mRot); } else if (position <= 1) { // (0,1] 此为B页 // 20 ~ 0 的变化 mRot = position * MAX_ROTATE; // 设置旋转中心为底线中点 ViewHelper.setPivotX(view,pageWidth/2); ViewHelper.setPivotY(view,view.getMeasuredHeight()); // 设置动画效果 ViewHelper.setRotation(view,mRot); } else { // (1,+Infinity] ViewHelper.setRotation(view,0); }
    查看全部
  • 重写onCreate()方法: requestWindowFeature(Window.FEATURE_NO_TITLE); // 无标题的Activity setContentView(R.layout.activity_main); mViewPager = (ViewPager)findViewById(R.id.id_viewpager); // 为ViewPager的切换添加动画效果 mViewPager.setPageTransformer(true,new DepthPageTransformer()); mViewPager.setAdapter(new PagerAdapter() { public Object instantiateItem(ViewGroup container, int position) {// 初始化 ImageView imageView = new ImageView(MainActivity.this); imageView.setImageResource(mImgIds[position]); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);// 确保图片不变形 mImagesList.add(imageView); container.addView(imageView); return imageView; } public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mImagesList.get(position)); } public int getCount() {// 一共有多少页 return mImgIds.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } });
    查看全部
  • 在activity_main.xml中添加 ViewPager控件: <android.support.v4.view.ViewPager android:id="@+id/id_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"></android> 从网上下载页面切换动画的源码,例如 DepthPageTransformer 和ZoomOutPageTransformer。 在MainActivity中定义成员变量: private ViewPager mViewPager; private int[] mImgIds = new int[]{R.mipmap.guide_image1,R.mipmap.guide_image2,R.mipmap.guide_image3}; private List<ImageView> mImagesList = new ArrayList<ImageView>(); ---------- Android Studio遇到的问题:无法将主题设置为无标题,原因是因为MainActivity默认继承的是AppCompatActivity,我们需要把 AppCompatActivity 改成 Activity 并导入相应的包。 ----------- 以下摘自评论: 关于ViewPager滑动时卡顿的优化:在destoryItem()方法中每次销毁一个View,滑动时又在instantiateItem()创建一个View,重复创建使得程序运行缓慢。解决办法是在instantiateItem()方法创建新的View对象时先进行判断,if(imageViewList.size() <= position || imageViewList.get(position) == null)时创建ImageView实例并添加到ImageViewList中。最后记得为调用 container.addView()方法加载并返回View。 推荐网站:http://blog.csdn.net/lmj623565791/article/details/40411921
    查看全部
  • //取消标题栏 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); // //取消状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    查看全部
  • ViewPager实现动画
    查看全部
  • ViewPager动画效果
    查看全部
  • 开源项目 d_vjazzyviewpager 实现ViewPager切换动画
    查看全部
  • 怎么显示了三页?
    查看全部
  • onPageScrolled() offfset
    查看全部
  • setPageTransformer()可以实现切换动画
    查看全部
  • 如果需要在viewpager最后一页设计一个图片加按钮的页面,可以定义一个布局文件, 1.用View myview = view.inflate(Mianactivity.this,R.layout.XXX,null);获取View,//注意:不能用findviewbyid 2.List<View> mviews = new ArrayList<View>(); 3.mviews.add(myview); 4.在instantiateItem函数中,container.addview(mviews.get(position));这样就能在viewpager中显示出来了。 5.关于最后一页的按钮的监听器实现,我的经历是在按钮没有在界面上显示的时候,实例化Button会出错,而且必须要在instantiateItem方法中实例化,我的解决方法是(假设我最后一个页面是第三个页面):if(position>2){ bt = (Button)findviewbyid(R.id.mbt); bt.setOnclickListener....},如果在前两个页面中把按钮实例化的话就会程序报错。
    查看全部
  • 属性动画
    查看全部
首页上一页123456下一页尾页

举报

0/150
提交
取消
课程须知
本课程需要大家对Android的了解要达到小成的境界: 1、熟悉Android常用API 2、了解Android如何自定义控件 3、了解属性动画
老师告诉你能学到什么?
通过本课程,你将学到: 1、PageTransformer的介绍与使用 2、自定义PageTransformer打造个性动画切换效果 3、属性动画的使用 4、自定义ViewPager实现个性的动画切换效果

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!