Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview
效果
单个item样式
多个item样式
横向item
自定义viewpager——可开关切换动画
public class NoAnimationViewPager extends ViewPager {public NoAnimationViewPager(Context context) {super(context);}public NoAnimationViewPager(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic void setCurrentItem(int item, boolean smoothScroll) {super.setCurrentItem(item, smoothScroll);}@Overridepublic void setCurrentItem(int item) {//去除页面切换时的滑动翻页效果super.setCurrentItem(item, true);}
}
viewpager的adapter
/*** 作者:created by meixi* 邮箱:1085220040@qq.com* 日期:2020/1/6 15:40*/
public class ViewPagerAdapter extends PagerAdapter {private List<GridView> gridList;public ViewPagerAdapter() {gridList = new ArrayList<>();}public void add(List<GridView> datas) {if (gridList.size() > 0) {gridList.clear();}gridList.addAll(datas);notifyDataSetChanged();}@Overridepublic int getCount() {return gridList.size();}@Overridepublic int getItemPosition(Object object) {return POSITION_NONE;}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(gridList.get(position));return gridList.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}
}
activity调用即可
private NoAnimationViewPager vp;
private ViewPagerAdapter mAdapter;
private List<GridView> gridList = new ArrayList<>();
private int WHAT_AUTO_PLAY = 1000;
private int autoPlayDuration = 2000;//刷新间隔时间
private int num = 0;
private boolean ifauto = true;
private List<GongXuEntity> mGongXuEntities = new ArrayList<>();
protected Handler mHandler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message msg) {if (msg.what == WHAT_AUTO_PLAY) {Log.e("lgq", "==33==" + ifauto);if (ifauto){num++;if (num==0){vp.setCurrentItem(num,false);}else {vp.setCurrentItem(num,true);}}if (mGongXuEntities.size() - 1 == num) {num = -1;}mHandler.sendEmptyMessageDelayed(WHAT_AUTO_PLAY, autoPlayDuration);}return false;}
});
mAdapter = new ViewPagerAdapter();
vp.setAdapter(mAdapter);
getdata();
showHostsj();
vp.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {ifauto = false;}if (event.getAction() == MotionEvent.ACTION_UP) {ifauto = true;}return false;}});
//圆点指示器mHandler.sendEmptyMessageDelayed(WHAT_AUTO_PLAY, autoPlayDuration);
public void getdata() {for (int a = 0; a < 6; a++) {GongXuEntity entity = new GongXuEntity();entity.setCity("城市" + a);if (a % 2 == 0) {entity.setSupplyDemand("0");} else {entity.setSupplyDemand("1");}entity.setContent("领道风味" + a);mGongXuEntities.add(entity);}
// mGongXuEntities.add(.......省略);}public void showHostsj() {for (int j = 0; j < mGongXuEntities.size(); j++) {GridView gridView = new GridView(this);HomeGridViewAdapter adapter = new HomeGridViewAdapter(mGongXuEntities, j);gridView.setTag(j);gridView.setNumColumns(1);gridView.setAdapter(adapter);gridList.add(gridView);gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {int index = Integer.parseInt(parent.getTag().toString()) * 1 + position;Log.i("lgq", "ii====" + index);//todo}});}mAdapter.add(gridList);}
demo链接:https://download.csdn.net/download/meixi_android/12106643
Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview相关推荐
- Android使用viewpager实现图片轮播效果
自定义View实现图片轮播,实现了图片自动轮播,手动滑动,轮播标题,以及点击事件. 里面有很多注释 一.文件布局 二.代码 ImageBannerViewGroup类 /*** Created by ...
- android 自适应图片轮播,Android使用Recyclerview实现图片轮播效果的方法
Android使用Recyclerview实现图片轮播效果的方法 发布时间:2020-06-23 15:47:58 来源:亿速云 阅读:113 作者:清晨 这篇文章将为大家详细讲解有关Android使 ...
- Android使用ViewPager实现图片轮播和手势滑动
ViewPager常用来实现图片的轮播,比如淘宝首页,会把一些促销的商品的图片和描述信息来回的播放,这就是典型的使用ViewPager实现的. ViewPager属于布局管理器,允许用户通过页面翻转查 ...
- android 自动播放 幻灯片,Android自动播放Banner图片轮播效果
本文实例为大家分享了Android自动播放Banner图片轮播的具体代码,供大家参考,具体内容如下 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id=&qu ...
- Android fragment中广告图片轮播效果的实现(附图 )
作者刚刚接触android小白一枚,这是本人在CSDN上写的第一篇博客..出于写博客的目的:一也是最重要的想让像我这样的android初学者少走点弯路,本以为这个功能实现起来挺简单的,但是项目要求在f ...
- Android UI 实现广告 Banner 轮播效果
编写acitivity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...
Android自动播放Banner图片轮播效果 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id="@+id/banner" andro ...
- Android使用ViewPager实现左右循环滑动及轮播效果
ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的Vie ...
- android 广告效果图,android 仿首页广告轮播效果
1.我们经常打开一个App会看到有广告图片轮播的效果,首先上效果图1.我们经常打开一个App会看到有广告图片轮播的效果,首先上效果图2.实现的过程1.轮播页面他是一 1.我们经常打开一个App会看到有 ...
最新文章
- Java条形码生成技术-Barcode4j
- 长方形与圆最近连线LISP_常见图形,圆形、长方形和正方形面积的计算
- MFC遍历窗体所有的控件
- C# Combobox联动
- python模仿windows文件管理_python – 在Windows中显示文件的资源管理器属性对话框...
- js unix时间戳转换
- 构造方法 c# 0106
- 关于TCP协议的大部分,面试常问的几点都在这理里了
- SpringBoot 快速整合 QuartZ
- MATLAB非线性可视化之线性系统相图
- 计算机操作系统笔记总结:Part1 计算机系统概述
- 关于LED限流电阻计算的那些事儿
- 通过一个html简单实现下载功能
- cmip5数据读取Matlab,CMIP5数据下载-其它文档类资源
- 已解决:Torch not compiled with CUDA enabled
- 长沙立坤文化怎么样?是骗子公司吗?网友想知道!
- 解决国内手机安装Google Play打开闪退问题
- Java Script 02
- chart.js使用学习——散点图
- 电子邮件头Received分析