1.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="200dp"> <android.support.v4.view.ViewPager android:id="@+id/viewpager2" android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@+id/ll2" android:layout_width="match_parent" android:layout_height="30dp" android:orientation="horizontal" android:layout_alignParentBottom="true" android:gravity="center" ></LinearLayout> </RelativeLayout> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </LinearLayout>
2.java
import android.os.Bundle; import android.os.Handler; import android.os.Message; 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 android.widget.RelativeLayout; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; public class FragmentOne extends Fragment { private String[] images={ "https://www.zhaoapi.cn/images/quarter/ad1.png", "https://www.zhaoapi.cn/images/quarter/ad2.png", "https://www.zhaoapi.cn/images/quarter/ad3.png", "https://www.zhaoapi.cn/images/quarter/ad4.png" }; private RelativeLayout relativeLayout; private ListView listView; private String path="https://www.apiopen.top/novelApi"; private HttpUtlis httpUtlis=HttpUtlis.getInstance(); private MyAdapter adapter2; private ViewPager viewPager2; private LinearLayout linearLayout2; private View view; private List<ImageView> image_list=new ArrayList<>(); private MyPagerAdapter adapter; private int i;//接受当前的页 private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); //得到当前位置 i=viewPager2.getCurrentItem(); //改变的选中页 viewPager2.setCurrentItem(i+1); //每2分钟换一张 handler.sendEmptyMessageDelayed(1,2000); } }; public static Fragment getInstance(String title){ FragmentOne fragmentOne=new FragmentOne(); Bundle bundle=new Bundle(); bundle.putString("title",title); fragmentOne.setArguments(bundle); return fragmentOne; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.fragmentone,container,false); viewPager2=view.findViewById(R.id.viewpager2); linearLayout2=view.findViewById(R.id.ll2); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //创建适配器 Bundle arguments=getArguments(); String title = arguments.getString("title"); if (arguments.get("title").equals("头条")){ initview(); getData(); adapter=new MyPagerAdapter(images,getActivity()); viewPager2.setAdapter(adapter); //开始轮播 handler.sendEmptyMessageDelayed(1,2000); viewPager2.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i=0;i<image_list.size();i++) { if (i==position%image_list.size()) { image_list.get(i).setSelected(true); } else { image_list.get(i).setSelected(false); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); }else { relativeLayout = view.findViewById(R.id.rl); relativeLayout.setVisibility(View.GONE); getData(); } } //创建小圆点 private void initview() { for (int i = 0; i < images.length; i++) { //创建图片 ImageView imageView = new ImageView(getActivity()); //设置选择器 imageView.setImageResource(R.drawable.imageselector); linearLayout2.addView(imageView); //添加到集合 image_list.add(imageView); } //设置默认选中的圆点 image_list.get(0).setSelected(true); } public void getData() { listView=view.findViewById(R.id.listview); httpUtlis.getdata(path); httpUtlis.setHttpListeren(new HttpUtlis.HttpListeren() { @Override public void getjsondata(String json) { Gson gson=new Gson(); UserBean userBean = gson.fromJson(json, UserBean.class); List<UserBean.DataBean> data = userBean.getData(); adapter2=new MyAdapter(getContext(),data); listView.setAdapter(adapter2); } }); } } 3.pagerAdapter适配器
public class MyPagerAdapter extends PagerAdapter { private String[] image; private Context context; public MyPagerAdapter(String[] image, Context context) { this.image = image; this.context = context; } @Override public int getCount() { //最大值 return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { //创建imageview ImageView imageView=new ImageView(context); //得到图片 ImageLoader.getInstance().displayImage(image[position%image.length],imageView,MyAppliaction.getOptions()); //添加到视图 container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
4.创建小圆点
先在drawable中创建shape
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <stroke android:color="#ffff" android:width="2dp" /> <size android:width="10dp" android:height="10dp" /> <solid android:color="#ffff"/> </shape>然后selector
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/shape2"/> <item android:state_selected="false" android:drawable="@drawable/shape1"/>
</selector>