无限轮播的简单实现
来源:互联网 发布:淘宝旺旺客服模板代码 编辑:程序博客网 时间:2024/05/17 22:46
这边先设置下布局
<RelativeLayout android:layout_width="match_parent" android:layout_height="250dp"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="250dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/lin" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="230dp" android:gravity="right" android:orientation="horizontal" ></LinearLayout></RelativeLayout>
然后设置viewpager下边的小圆点,形状自己开心就好、这是选中状态下的小圆点(我给的形状是圆柱形)
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#fff"></solid> <size android:height="4dp" android:width="15dp"></size> <corners android:radius="10dp"></corners></shape>然后不被选中的小圆点状态
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#666464"></solid> <size android:height="6dp" android:width="6dp"></size></shape>好,这边设置完直接上业务逻辑层代码
//找到无限轮播所用控件private void find() { list_image = new ArrayList<>(); list_yuan = new ArrayList<>(); linear_yuan = (LinearLayout) inflate.findViewById(R.id.lin); vp = (ViewPager) inflate.findViewById(R.id.vp);}
private void getNetData() { AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); asyncHttpClient.get(getActivity(), url_image, new TextHttpResponseHandler() { @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { } @Override public void onSuccess(int statusCode, Header[] headers, String responseString) { Gson gson = new Gson(); Syfragment_bean bean = gson.fromJson(responseString, Syfragment_bean.class); List<Syfragment_bean.DataBean.Ad1Bean> ad1 = bean.getData().getAd1(); for (int i = 0; i < ad1.size(); i++) { //獲取網絡地址 String url = ad1.get(i).getImage(); //new一張圖片 ImageView imageView = new ImageView(getActivity()); //設置他填充福昌體 imageView.setScaleType(ImageView.ScaleType.FIT_XY); //用imageloder給他网络地址,进而显示图片 // ImageLoader.getInstance().displayImage(url, imageView); ImageLoader.getInstance().displayImage(url, imageView); //把图片装进集合 list_image.add(imageView); //new一个小圆点 ImageView button = new ImageView(getActivity()); button.setImageResource(R.drawable.yuan_nomal); button.setPadding(5, 0, 5, 0); linear_yuan.addView(button); //把原点装进集合 list_yuan.add(button); } //设置小圆点的第一个是默认选中状态 list_yuan.get(0).setImageResource(R.drawable.yuan_select); initDatas(); } }); //联动viewpager轮播设置小圆点联动的监听 vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < list_yuan.size(); i++) { if (position % list_yuan.size() == i) { list_yuan.get(i).setImageResource(R.drawable.yuan_select); } else { list_yuan.get(i).setImageResource(R.drawable.yuan_nomal); } } } @Override public void onPageScrollStateChanged(int state) { } });}public void onResume() { super.onResume(); handler.postDelayed(new Runnable() { @Override public void run() { current = vp.getCurrentItem(); vp.setCurrentItem(current + 1); handler.postDelayed(this, 3000); } }, 50);}//创建无限轮播适配器private void initDatas() { if (myAdapter == null) { myAdapter = new MyAdapter(); vp.setAdapter(myAdapter); } else { myAdapter.notifyDataSetChanged(); }}//无限轮播设置适配器class MyAdapter extends PagerAdapter { @Override public Object instantiateItem(ViewGroup container, int position) { View view = list_image.get(position % (list_image.size())); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { View view = list_image.get(position % (list_image.size())); container.removeView(view); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; }}
阅读全文
2 0
- 无限轮播的简单实现
- 网络无限轮播的简单实现
- 无限轮播的实现
- 无限轮播的实现
- 图片无限轮播-最简单的实现方法
- 简单实现 scrollview无限轮播的封装
- android无限轮播广告的简单实现
- 安卓最简单的轮播图实现无限轮播
- ViewPager无限轮播,简单实现
- 简单的ViewPager无限轮播
- 简单的无限轮播封装
- 无限轮播的Banner简单方法
- 无限轮播 RollViewPager 的简单使用
- 安卓中无限轮播的实现
- Android 无限轮播ViewPager的实现
- 自定义无限轮播ViewPager的实现
- 无限轮播+自动轮播的实现
- 无限轮播简单方法
- oracle 存储过程的基本语法
- userdebug版本手机adb remount没有权限问题解决
- python网页转PDF
- Qt开发环境搭建
- 纹理资源压缩测试对比
- 无限轮播的简单实现
- POI复制excel时,对列宽的复制
- 图片与图片间距去除
- VB.NET Epicor BAQ VS Connection to a Progress Server
- python2学习笔记--字符串(第3章)
- android TextInputLayout
- Apache Maven项目提供的EAR插件详解
- {"无法加载协定为“ServiceReference1.IBaiKaHui_wcfService”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。"}
- 利用R语言分析挖掘Titanic数据集(二)