小圆点

package aaaaa.lunbo;


import android.os.AsyncTask;
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.util.Log;
import android.widget.ImageView;
import android.widget.LinearLayout;


import com.google.gson.Gson;


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;


import aaaaa.lunbo01.DBean;
import aaaaa.lunbo02.MyAdpter;


public class MainActivity extends AppCompatActivity {
    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 ViewPager viewPager;
    private LinearLayout linearLayout;
    private List<ImageView> imagelist;
    private List<DBean.NewslistBean> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


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


        //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 <imagelist.size() ; i++) {
                    if (i==position%imagelist.size()){
                        imagelist.get(i).setImageResource(R.drawable.no);
                    }else{
                        imagelist.get(i).setImageResource(R.drawable.yes);
                    }
                }
            }


            @Override
            public void onPageScrollStateChanged(int state) {


            }
        });
        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {
                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.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);


                    int responseCode = connection.getResponseCode();
                    if (responseCode==200){
                        InputStream inputStream = connection.getInputStream();


                        String json = streamToString(inputStream,"utf-8");


                        return json;
                    }


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




                return null;
            }


            @Override
            protected void onPostExecute(String json) {
                Gson gson = new Gson();


                DBean dBean = gson.fromJson(json, DBean.class);
                list = dBean.getNewslist();
                Log.i("---------",list.get(0).getTitle());


                MyAdpter myAdapter = new MyAdpter(handler,list, MainActivity.this);


                //初始化小圆点的方法
                initShape();
                //给viewPager设置适配器
                viewPager.setAdapter(myAdapter);


                //先设置显示在中间的一页
                viewPager.setCurrentItem(100000);


                handler.sendEmptyMessageDelayed(0,2000);
            }
        };
        asyncTask.execute();


    }


    //初始化小圆点
    private void initShape() {
        //装imageview的集合
        imagelist = new ArrayList<>();


        //清除布局上的所有视图
        linearLayout.removeAllViews();


        //有多少大图片就添加多少张小圆点
        for (int i = 0; i < list.size(); i++) {
            ImageView imageView = new ImageView(MainActivity.this);
            if (i==0){
                //如果是显示第一张的时候,显示红色的
                imageView.setImageResource(R.drawable.no);
            }else{
                imageView.setImageResource(R.drawable.yes);
            }


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


            //布局的参数,间距
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);


            //设置小圆点间距
            layoutParams.setMargins(5,0,5,0);


            //添加到布局里
            linearLayout.addView(imageView,layoutParams);
        }
    }


    private String streamToString(InputStream inputStream, String charset) {
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, charset);


            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);


            StringBuilder builder = new StringBuilder();


            String s= null;
            while((s=bufferedReader.readLine())!=null){
                builder.append(s);
            }
            return builder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }


        return charset;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值