无线轮播叫小点点和引导页

来源:互联网 发布:ipad电视直播软件排名 编辑:程序博客网 时间:2024/05/05 08:59

无限轮播首先创建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));        }    }}