轮播图+小圆点展示

                                      <------布局------->
                                      <?xml version="1.0" encoding="utf-8"?>
                                    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                        xmlns:tools="http://schemas.android.com/tools"
                                        android:layout_width="match_parent"
                                        android:layout_height="match_parent">

                                        <android.support.v4.view.ViewPager
                                            android:id="@+id/view_pager"
                                            android:layout_width="match_parent"
                                            android:layout_height="200dp">

                                        </android.support.v4.view.ViewPager>

                                        <LinearLayout
                                            android:id="@+id/linear_layout"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_alignBottom="@+id/view_pager"
                                            android:layout_centerHorizontal="true"
                                            android:layout_marginBottom="20dp"
                                            android:orientation="horizontal">

                                        </LinearLayout>
                                    </RelativeLayout>

        <?xml version="1.0" encoding="utf-8"?>
        <shape xmlns:android="http://schemas.android.com/apk/res/android">

            <solid android:color="#ff0000"/>

            <corners android:radius="5dp"/>

            <size android:height="10dp" android:width="10dp"/>

        </shape>                        
                                    <----主页面---->
                                package com.example.a13_lunbotu;

                                import android.os.Bundle;
                                import android.os.Handler;
                                import android.os.Message;
                                import android.support.v4.view.ViewPager;
                                import android.support.v7.app.AppCompatActivity;
                                import android.widget.ImageView;
                                import android.widget.LinearLayout;

                                import java.util.ArrayList;
                                import java.util.List;

                                public class MainActivity extends AppCompatActivity {

                                    private ViewPager viewPager;
                                    private List<String> list;

                                    private Handler handler = new Handler(){
                                        @Override
                                        public void handleMessage(Message msg) {
                                            if (msg.what == 0){
                                                int currentItem = viewPager.getCurrentItem();
                                                viewPager.setCurrentItem(currentItem+1);

                                                handler.sendEmptyMessageDelayed(0,2000);
                                            }
                                        }
                                    };
                                    private LinearLayout linearLayout;
                                    private List<ImageView> images;

                                    @Override
                                    protected void onCreate(Bundle savedInstanceState) {
                                        super.onCreate(savedInstanceState);
                                        setContentView(R.layout.activity_main);


                                        viewPager = (ViewPager) findViewById(R.id.view_pager);
                                        linearLayout = (LinearLayout) findViewById(R.id.linear_layout);

                                        //数据.....装的是path路径
                                        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();

                                        //设置适配器
                                        ImagePager imagePager = new ImagePager(MainActivity.this, list,handler);
                                        //
                                        viewPager.setAdapter(imagePager);

                                        //设置ViewPager初始展示的位置
                                        viewPager.setCurrentItem(list.size()*10000);


                                        //发送延时消息
                                        handler.sendEmptyMessageDelayed(0,2000);


                                        //viewPager页面改变的监听事件
                                        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                                            @Override
                                            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                                            }

                                            @Override
                                            public void onPageSelected(int position) {
                                                //如果选中了这一页,,,当前小圆点红色,,,否则绿色
                                                for (int i = 0;i<images.size();i++){
                                                    if (i== position%images.size()){
                                                        images.get(i).setImageResource(R.drawable.doc_select);
                                                    }else {
                                                        images.get(i).setImageResource(R.drawable.doc_select_no);
                                                    }
                                                }
                                            }

                                            @Override
                                            public void onPageScrollStateChanged(int state) {

                                            }
                                        });
                                    }

                                    /**
                                     * 初始化小圆点
                                     */
                                    private void initDoc() {
                                        //首先需要一个集合记录这些小圆点的图片,,,,当页面切换的时候,可以从集合中取出imageView进行显示图片的设置
                                        images = new ArrayList<>();
                                        linearLayout.removeAllViews();//清空/移除所有的view

                                        for (int i = 0;i<list.size();i++){
                                            ImageView imageView = new ImageView(MainActivity.this);

                                            if (i==0){//显示第一页,,,红的
                                                imageView.setImageResource(R.drawable.doc_select);
                                            }else {//绿的
                                                imageView.setImageResource(R.drawable.doc_select_no);
                                            }

                                            //添加到集合
                                            images.add(imageView);

                                            //加入到线性布局中显示
                                            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

                                            params.setMargins(5,0,5,0);

                                            linearLayout.addView(imageView,params);

                                        }


                                    }
                                }

                            <-----适配器------>
                            package com.example.a13_lunbotu;

                            import android.content.Context;
                            import android.os.Handler;
                            import android.support.v4.view.PagerAdapter;
                            import android.util.Log;
                            import android.view.MotionEvent;
                            import android.view.View;
                            import android.view.ViewGroup;
                            import android.widget.ImageView;
                            import android.widget.Toast;

                            import com.nostra13.universalimageloader.core.ImageLoader;

                            import java.util.List;

                            /**
                             * @author Dash
                             * @date 2017/9/12
                             * @description:
                             */
                            public class ImagePager extends PagerAdapter {
                                Context context;
                                List<String> list;
                                Handler handler;

                                public ImagePager(Context context, List<String> list, Handler handler) {
                                    this.context = context;
                                    this.list = list;
                                    this.handler = handler;

                                    //初始化
                                    //ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(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 = new ImageView(context);
                                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);

                                    //加载网络的图片
                                    ImageLoader.getInstance().displayImage(list.get(position%list.size()),imageView);

                                    /*imageView.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Log.i("----","点击事件执行了");
                                        }
                                    });*/

                                    //imageView触摸的监听事件
                                    imageView.setOnTouchListener(new View.OnTouchListener() {
                                        @Override
                                        public boolean onTouch(View view, MotionEvent motionEvent) {
                                            boolean isTiaoZhuan = true;

                                            switch (motionEvent.getAction()){//获取动作
                                                case MotionEvent.ACTION_DOWN://按下
                                                    Log.i("--","ACTION_DOWN");
                                                    handler.removeCallbacksAndMessages(null);
                                                    break;
                                                case MotionEvent.ACTION_MOVE://移动
                                                    Log.i("--","ACTION_MOVE");
                                                    isTiaoZhuan = false;
                                                    handler.removeCallbacksAndMessages(null);

                                                    break;
                                                case MotionEvent.ACTION_CANCEL://取消
                                                    Log.i("--","ACTION_CANCEL");
                                                    isTiaoZhuan = false;
                                                    handler.sendEmptyMessageDelayed(0,2000);
                                                    break;
                                                case MotionEvent.ACTION_UP://抬起
                                                    Log.i("--","ACTION_UP");
                                                    if (isTiaoZhuan){
                                                        Toast.makeText(context,"跳转页面",Toast.LENGTH_SHORT).show();

                                                        /*Intent intent = new Intent();

                                                        context.startActivity();*/
                                                    }
                                                    handler.sendEmptyMessageDelayed(0,2000);

                                                    break;
                                            }

                                            //自己处理触摸事件....如果当前位置返回了true,,,点击事件将不会执行,,,表示动作自己处理,不会传递
                                            return true;
                                        }
                                    });

                                    //添加到容器
                                    container.addView(imageView);

                                    return imageView;
                                }

                                @Override
                                public void destroyItem(ViewGroup container, int position, Object object) {

                                    container.removeView((View) object);
                                }
                            }

                    <网络请求图片展示>
                    package com.example.shilei20170913;

                    import android.os.AsyncTask;
                    import android.os.Handler;
                    import android.os.Message;
                    import android.support.v4.view.ViewPager;
                    import android.support.v7.app.AppCompatActivity;
                    import android.os.Bundle;
                    import android.util.Log;
                    import android.view.ViewGroup;
                    import android.widget.ImageView;
                    import android.widget.LinearLayout;
                    import android.widget.TextView;

                    import com.example.shilei20170913.adapter.Myadapter;
                    import com.example.shilei20170913.bean.JavaBeanOne;
                    import com.google.gson.Gson;

                    import java.io.BufferedReader;
                    import java.io.InputStream;
                    import java.io.InputStreamReader;
                    import java.io.UnsupportedEncodingException;
                    import java.net.HttpURLConnection;
                    import java.net.MalformedURLException;
                    import java.net.URL;
                    import java.security.acl.LastOwnerException;
                    import java.util.ArrayList;
                    import java.util.List;

                    public class MainActivity extends AppCompatActivity {

                        private ViewPager viewpager;
                        private LinearLayout linear_layout;
                        private TextView text01;

                        private List<JavaBeanOne.NewslistBean> newslist;
                        private List<ImageView> list;
                        private Handler handler = new Handler(){
                            @Override
                            public void handleMessage(Message msg) {
                                super.handleMessage(msg);
                                 switch (msg.what){
                                     case 0:
                                         int currentItem = viewpager.getCurrentItem();
                                         viewpager.setCurrentItem(currentItem+1);
                                         handler.sendEmptyMessageDelayed(0,2000);
                                         break;

                                 }

                            }
                        };

                        @Override
                        protected void onCreate(Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);
                            setContentView(R.layout.activity_main);
                            viewpager = (ViewPager) findViewById(R.id.viewpager);
                            text01 = (TextView) findViewById(R.id.text01);
                            linear_layout = (LinearLayout) findViewById(R.id.linear_layout);
                            getData();

                        }
                        public void getData(){
                            new AsyncTask<String,String,String>(){


                                @Override
                                protected String doInBackground(String... strings) {
                                  String path ="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=6&page=1";
                                    try {
                                        URL url = new URL(path);
                                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                                        connection.setRequestMethod("GET");
                                        connection.setConnectTimeout(5000);
                                        connection.setReadTimeout(5000);
                                        int responseCode = connection.getResponseCode();
                                     if(responseCode == 200){
                                         InputStream inputStream = connection.getInputStream();
                                         String s = StreamToString(inputStream, "utf-8");
                                         Log.i("打印",s);
                                       return s;
                                     }


                                    } catch (Exception e) {
                                        e.printStackTrace();
                                    }

                                    return null;

                                }

                                @Override
                                protected void onPostExecute(String s) {

                                    Gson gson = new Gson();
                                    JavaBeanOne javaBeanOne = gson.fromJson(s, JavaBeanOne.class);
                                    newslist = javaBeanOne.getNewslist();

                                      Log.i("你好", newslist.toString());
                                    initDoc();
                                    Myadapter myadapter = new Myadapter(MainActivity.this, newslist);
                                    //设置适配器
                                    viewpager.setAdapter(myadapter);
                                    PagerListerne();
                                    handler.sendEmptyMessageDelayed(0,2000);
                                }
                            }.execute();
                        }

                        public void PagerListerne(){

                            viewpager.setCurrentItem(newslist.size()*10000);
                            viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                                @Override
                                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                                }

                                @Override
                                public void onPageSelected(int position) {


                                          for (int i=0;i<newslist.size();i++){

                                                    if(i==position%list.size()){
                                                        list.get(i).setImageResource(R.drawable.shape_02);
                                                        text01.setText(newslist.get(i).getTitle());
                                                    }else{
                                                        list.get(i).setImageResource(R.drawable.shape_01);
                                                    }
                                    }
                                }

                                @Override
                                public void onPageScrollStateChanged(int state) {

                                }
                            });
                        }
                    public String StreamToString(InputStream inputstream, String charset){
                        try {
                            InputStreamReader inputStreamReader = new InputStreamReader(inputstream, charset);
                            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                            StringBuilder stringBuilder = new StringBuilder();
                            String string;
                            while((string=bufferedReader.readLine())!=null){

                                stringBuilder.append(string);
                            }
                            bufferedReader.close();
                            return stringBuilder.toString();

                        } catch (Exception e) {

                            e.printStackTrace();
                        }
                        return null;
                    }
                        public void initDoc(){
                            list = new ArrayList<>();
                               linear_layout.removeAllViews();
                            for (int i=0;i<newslist.size();i++){
                                ImageView imageView = new ImageView(MainActivity.this);
                                if( i == 0){
                                          imageView.setImageResource(R.drawable.shape_02);
                                }else{
                                    imageView.setImageResource(R.drawable.shape_01);
                                }
                                list.add(imageView);

                                LinearLayout.LayoutParams linear = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

                                linear.setMargins(5,0,5,0);

                                linear_layout.addView(imageView,linear);
                            }
                        }
                    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值