【viewPager实现轮播(代码)】
来源:互联网 发布:focusky for mac 破解 编辑:程序博客网 时间:2024/06/05 00:39
代码
xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshScrollView android:id="@+id/two_pull" android:layout_width="match_parent" android:layout_height="match_parent" ptr:ptrAnimationStyle="flip" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/two_vp" android:layout_width="match_parent" android:layout_height="200dp"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/two_lin" android:layout_width="match_parent" android:layout_height="wrap_parent" android:layout_alignBottom="@id/two_vp" android:gravity="center" android:orientation="horizontal"></LinearLayout> </RelativeLayout> </com.handmark.pulltorefresh.library.PullToRefreshScrollView></RelativeLayout>
Java
TwoFragment
package com.bawei.text04.fragments;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.bawei.text04.R;import com.bawei.text04.adapter.Two_ImagePager;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;import java.util.ArrayList;import java.util.List;/** * Created by sky on 2017/11/15. */public class TwoFragment extends Fragment { private View v; private PullToRefreshScrollView rsv; private ViewPager vp; private LinearLayout lin; private List<String> list; private ArrayList<ImageView> images;//存放小圆点控件的集合 private Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { //获取当前正在显示的页面 int index = vp.getCurrentItem(); vp.setCurrentItem(index + 1); //改变小圆点 setSelectedPoint((index + 1) % list.size()); //延迟发送消息 sendEmptyMessageDelayed(1, 2000); } }; private int index; private ListView lv; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { v = View.inflate(getActivity(), R.layout.two, null); //初始化组件 initView(); //初始化轮播 initvp(); return v; } private void initView() { rsv = v.findViewById(R.id.two_pull);//PullToRefreshScrollView vp = v.findViewById(R.id.two_vp);//ViewPager lin = v.findViewById(R.id.two_lin);//小圆点 lv = v.findViewById(R.id.two_lv);//listview } /** * 改变小圆点图片 * * @param index 页面的下标 */ private void setSelectedPoint(int index) { for (int i = 0; i < images.size(); i++) { if (i == index) { images.get(i).setImageResource(R.drawable.point_selected); } else { images.get(i).setImageResource(R.drawable.point_un_selected); } } } private void initvp() { list = new ArrayList<>(); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151721118&di=649c9a43aed72fbc4d99ec1a031510c6&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F015c7d574b9f8f6ac72525aee98351.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151956771&di=0eb6f306991d24b67a13ceb336f80102&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farchive%2F00613def3f1beb7a35ae136341be2b589bc46a2d.jpg_320x200.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151847685&di=c7a4b5d08ec43fa629bcb690039a7629&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_080625%2F20080625_2e91a10c444877e88827vri2ZKdGMvQo.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151825129&di=70bf74b87d8a15cb91a2d79f15ed0eaf&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_081016%2F20081016_fee215664d5740e56c13E2YB8giERFEX.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505746504&di=930c4d677a02328a142d6fa85ed14580&imgtype=jpg&er=1&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_090113%2F20090113_6ac58b42bea94f0b318e1B6BZb5lPZl5.jpg"); //初始化小圆点 initDoc(); //设置适配器 vp.setAdapter(new Two_ImagePager(getActivity(),list)); //设置当前要显示的页面 vp.setCurrentItem(list.size()*10); //实现自动播放 myHandler.sendEmptyMessageDelayed(1, 2000); } private void initDoc() { images = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { ImageView imageView = new ImageView(getActivity()); //设置图片的缩放模式 imageView.setScaleType(ImageView.ScaleType.FIT_XY); //设置要显示的图片 if (i == 0) { imageView.setImageResource(R.drawable.point_selected); } else { imageView.setImageResource(R.drawable.point_un_selected); } //设置宽度与高度 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(40, 40); params.setMargins(10, 0, 10, 0); //添加到底部容器中 lin.addView(imageView, params); //添加到集合中 images.add(imageView); } }}Two_ImagePager
package com.bawei.text04.adapter;import android.content.Context;import android.support.annotation.NonNull;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.bawei.text04.utils.ImageloaderUtil;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by sky on 2017/11/16. */public class Two_ImagePager extends PagerAdapter { Context context; List<String> list;//网络图片地址 public Two_ImagePager(Context context, List<String> list) { this.context = context; this.list = list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view==object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { //返回当前显示的视图 ImageView image = new ImageView(context); image.setScaleType(ImageView.ScaleType.FIT_XY); //加载网络的图片list.get(position%list.size()) //报错:ImageLoader must be init with configuration before using---imageloader必须初始化配置使用前 ImageLoader.getInstance().displayImage(list.get(position%list.size()),image, ImageloaderUtil.getImageOptions()); //添加到容器 container.addView(image); return image; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); }}
阅读全文
0 0
- 【viewPager实现轮播(代码)】
- ViewPager实现轮播
- ViewPager实现轮播
- ViewPager实现轮播广告栏(BannerPager)
- ViewPager实现图片轮播
- ViewPager实现图片轮播
- ViewPager实现广告轮播
- ViewPager实现广告轮播
- ViewPager实现大图轮播
- ViewPager实现广告轮播
- ViewPager实现图片轮播
- ViewPager实现无限轮播
- ViewPager可以实现轮播
- ViewPager实现图片轮播
- ViewPager实现广告轮播
- viewpager实现循环轮播
- ViewPager无限轮播实现
- 广告轮播实现(ViewPager的实现)
- POJ3020 Antenna Placement(二分图最小路径覆盖)
- selenium + python环境搭建
- static 相关的知识点
- Hadoop完全分布式集群安装Spark
- 数据结构第三次上机 第四章之顺序串
- 【viewPager实现轮播(代码)】
- 优化 UWP 中图片的内存占用
- web项目中各种路径的获取
- wpi http 报错
- 非常详细的 Docker 学习笔记
- shell中的字母大小写转换
- hbase filter及rowkey范围检索使用并对结果集处理
- SAP Fiori 2.0中文版系列视频教程(中文首发)
- c++语言的空格问题