Android ViewPager实现广告无限轮播

Android 广告无限轮播

小小的偷懒一次,感谢这位前辈已经给了我们现成的:

http://www.trinea.cn/android/auto-scroll-view-pager/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,演示如何使用ViewPager实现广告轮播、卡片切换和卡片缩放动画。 1. 布局文件 在布局文件中,我们需要添加一个ViewPager控件,并为ViewPager设置相应的布局参数,如下所示: ```xml <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="200dp" android:clipToPadding="false" android:paddingLeft="50dp" android:paddingRight="50dp" android:overScrollMode="never"/> ``` 注意,我们在这里设置了ViewPager的clipToPadding属性为false,这是为了让ViewPager的子视图可以超出ViewPager的边界,从而实现卡片切换效果。我们还设置了ViewPager的paddingLeft和paddingRight属性,以便在ViewPager的两侧留出一些空白区域。 2. ViewPager适配器 接下来,我们需要创建一个ViewPager适配器,用于管理ViewPager中的视图。在这个适配器中,我们可以根据需要添加或删除ViewPager中的子视图,并为这些子视图设置相应的布局参数和动画效果。 ```java public class ViewPagerAdapter extends PagerAdapter { private Context mContext; private List<Integer> mImageIds; public ViewPagerAdapter(Context context, List<Integer> imageIds) { mContext = context; mImageIds = imageIds; } @Override public int getCount() { return mImageIds.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(mContext); imageView.setImageResource(mImageIds.get(position)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); // 添加缩放动画效果 if (position == 0) { imageView.setScaleX(1.2f); imageView.setScaleY(1.2f); } else { imageView.setScaleX(1.0f); imageView.setScaleY(1.0f); } container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } } ``` 在这个适配器中,我们需要重写一些方法: - getCount():返回ViewPager中子视图的数量。 - isViewFromObject():判断一个视图是否是由给定的对象生成的。 - instantiateItem():当一个视图需要被添加到ViewPager中时,会调用这个方法来创建这个视图,并将它添加到ViewPager中。 - destroyItem():当一个视图需要被从ViewPager中删除时,会调用这个方法来删除这个视图。 在instantiateItem()方法中,我们为每个子视图设置了一个默认的缩放比例,同时也可以根据需要设置子视图的其他动画效果。 3. 设置ViewPager的滑动效果 为了让ViewPager的滑动效果更加流畅,我们可以为ViewPager设置一些滑动效果参数: ```java viewPager.setClipToPadding(false); viewPager.setPadding(50, 0, 50, 0); viewPager.setPageMargin(20); viewPager.setOffscreenPageLimit(3); viewPager.setPageTransformer(true, new ViewPager.PageTransformer() { @Override public void transformPage(@NonNull View page, float position) { float scale = 1 - Math.abs(position) * 0.2f; page.setScaleX(scale); page.setScaleY(scale); } }); ``` 在这里,我们设置了ViewPager的clipToPadding属性为false,同时设置了ViewPager的padding属性和pageMargin属性,以便在ViewPager的两侧留出一些空白区域,并为ViewPager中的子视图之间添加一些间隔。我们还设置了ViewPager的offscreenPageLimit属性,以便预加载一些子视图,以提高滑动效果的流畅度。 最后,我们为ViewPager设置了一个PageTransformer,这个PageTransformer可以为ViewPager中的每个子视图设置一个动画效果。在这里,我们为每个子视图设置了一个缩放效果,使得ViewPager中的子视图在滑动过程中可以自动缩放。 4. 加载ViewPager 在Activity或Fragment中,我们只需要创建一个ViewPagerAdapter对象,并将这个适配器设置到ViewPager中即可: ```java List<Integer> imageIds = new ArrayList<>(); imageIds.add(R.drawable.advertisement1); imageIds.add(R.drawable.advertisement2); imageIds.add(R.drawable.advertisement3); ViewPagerAdapter adapter = new ViewPagerAdapter(getContext(), imageIds); ViewPager viewPager = findViewById(R.id.view_pager); viewPager.setAdapter(adapter); ``` 这样,就可以完成Android中使用ViewPager实现广告轮播、卡片切换和卡片缩放动画的代码了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值