代码
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); } }