无限轮播首先创建Viewpager
1.创建无相轮播的布局
<?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"> <LinearLayout android:layout_weight="3" android:layout_width="match_parent" android:layout_height="0dp" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="160dp"/> <LinearLayout android:layout_alignParentBottom="true" android:orientation="horizontal" android:gravity="center" android:layout_width="fill_parent" android:layout_height="30dp" > <LinearLayout android:orientation="horizontal" android:id="@+id/liner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp"> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout>
2.网络获取图片添加到集合当中
3.创建适配器Viewpager
package com.bwie.test.adapter; import android.content.Context; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; import imageloaderapp.bwie.com.mylibrary.ImageLoaderUtils; /** * Created by Love_you on 2017/8/21 0021. */ public class MyPagerAdapter extends PagerAdapter { private Context context; private List<String> list; public MyPagerAdapter(Context context, List<String> list) { this.context = context; this.list = list; } @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 image=new ImageView(context); DisplayImageOptions options= ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(list.get(position%list.size()),image,options); container.addView(image); return image; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
4.给控件添加适配器
//添加小点点的方法 addpoint(); //给viewpager添加适配器 MyPagerAdapter myPagerAdapter=new MyPagerAdapter(MainActivity.this,imageList); viewPager.setAdapter(myPagerAdapter); viewPager.setCurrentItem(imageList.size()*1000); //给viewpager添加监听 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} @Override public void onPageSelected(int position) { position = position%imageList.size(); imageViewList.get(lastposition).setImageResource(R.drawable.dot_normal); imageViewList.get(position).setImageResource(R.drawable.dot_focus); lastposition=position; }
5.写出小点点的方法
//添加小点点的方法 public void addpoint(){ for (int i = 0; i < imageList.size(); i++) { ImageView imageView=new ImageView(MainActivity.this); imageView.setImageResource(R.drawable.dot_normal); LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT); layoutParams.leftMargin=36; imageViewList.add(imageView); linearLayout.addView(imageView,layoutParams); } }
在handler中添加代码就可以自动轮播了
每隔一秒发送一个请求码进行下一个轮播图
if(msg.what==1){ currentItem ++; viewPager.setCurrentItem(currentItem); } handler.sendEmptyMessageDelayed(1,1000);
这个是GroupView展示适配器同Listview
<GridView android:id="@+id/gridview" android:layout_weight="7" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="2" />
引导页
package com.bwie.text.activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils; import com.bwie.text.R; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private String imagePath03="http://sjbz.fd.zol-img.com.cn/t_s800x1280c/g5/M00/00/04/ChMkJ1fJWI2IAqmNAAv6o3Kp-KgAAU-KANHRqQAC_q7387.jpg"; private String imagePath02="http://sjbz.fd.zol-img.com.cn/t_s800x1280c/g5/M00/00/04/ChMkJ1fJWI6IIEjPAAsAXdewuT8AAU-KANfBsUACwB1885.jpg"; private String imagePath01="http://sjbz.fd.zol-img.com.cn/t_s800x1280c/g5/M00/00/04/ChMkJ1fJWI2IAVOHAAuL8vZ_8FkAAU-KAM7upoAC4wK339.jpg"; private ViewPager viewPager; private List<View> list; private Handler handler=new Handler(); Runnable runnable=new Runnable() { @Override public void run() { if(i>=0){ i--; handler.postDelayed(runnable,1000); }else { handler.removeCallbacks(runnable); Intent intent=new Intent(MainActivity.this,MyActivity.class); startActivity(intent); finish(); } } }; private int i=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取资源id viewPager = (ViewPager) findViewById(R.id.viewpager); //创建集合 list=new ArrayList<>(); SharedPreferences guide = getSharedPreferences("guide", MODE_PRIVATE); boolean isfirst=guide.getBoolean("isfirst",true); if(isfirst){ //初始化资源 getListData(); viewPager.setAdapter(new ViewpagerAdapter()); SharedPreferences.Editor editor=guide.edit().putBoolean("isfirst",false); editor.commit(); }else { //第一次以后的引导页 getGuideData(); } } public void getGuideData() { //加载视图 View v3=View.inflate(MainActivity.this, R.layout.guide03,null); //获取布局控件 Button btn= (Button) v3.findViewById(R.id.btn); ImageView image03= (ImageView) v3.findViewById(R.id.image03); image03.setScaleType(ImageView.ScaleType.FIT_XY); btn.setVisibility(View.GONE); DisplayImageOptions options=ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(imagePath03,image03,options); list.clear();//清空集合 list.add(v3); viewPager.setAdapter(new ViewpagerAdapter()); handler.postDelayed(runnable,1000); } //初始化资源 public void getListData() { //加载布局 View v1=View.inflate(MainActivity.this,R.layout.guide01,null); View v2=View.inflate(MainActivity.this,R.layout.guide02,null); View v3=View.inflate(MainActivity.this,R.layout.guide03,null); //获取布局控件 ImageView image01= (ImageView) v1.findViewById(R.id.image01); ImageView image02= (ImageView) v2.findViewById(R.id.image02); ImageView image03= (ImageView) v3.findViewById(R.id.image03); image01.setScaleType(ImageView.ScaleType.FIT_XY); image02.setScaleType(ImageView.ScaleType.FIT_XY); image03.setScaleType(ImageView.ScaleType.FIT_XY); Button btn= (Button) v3.findViewById(R.id.btn); //按钮是指点击事件 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,MyActivity.class); startActivity(intent); finish(); } }); DisplayImageOptions options= ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(imagePath01,image01,options); ImageLoader.getInstance().displayImage(imagePath02,image02,options); ImageLoader.getInstance().displayImage(imagePath03,image03,options); list.add(v1); list.add(v2); list.add(v3); } //viewpager适配器 class ViewpagerAdapter extends PagerAdapter{ @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { //加载视图 container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position)); } } }