AsyncTask

public class Main2Activity extends AppCompatActivity {

public String dataurl="http://172.17.8.100/mobile/exam/findCommodityList\n";
private ViewPager viewpager;
private GridView gridview;
private List<BoBean.ResultBean.ProductBean> list;
//自动轮播
Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what == 2){
            viewpager.setCurrentItem(viewpager.getCurrentItem()+1);
            handler.sendEmptyMessageDelayed(2,3000);

        }
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    new MyAsync().execute();
}
class  MyAsync extends AsyncTask<Integer,Integer,String> {

    private List<BoBean.ResultBean.PicsBean> list1;

    //耗时的操作
    @Override
    protected String doInBackground(Integer... integers) {
        String messages="";
        try {
            //获取网址
            URL url = new URL(dataurl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            //网络获取方法
            connection.setRequestMethod("GET");
            //延时链接
            connection.setConnectTimeout(5000);
            //超时连接
            connection.setReadTimeout(5000);
            //数据流处理
            if (connection.getResponseCode() == 200){
                //获取输入流
                InputStream inputStream = connection.getInputStream();
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                int len = -1;
                byte[] b = new byte[1024*500];
                while ((len=inputStream.read(b)) != -1){
                    outputStream.write(b,0,len);
                }
                messages = outputStream.toString();
                inputStream.close();
                connection.disconnect();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return messages;
    }

    //执行后台任务前对UI进行一些标记
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        //获取控件
        viewpager = findViewById(R.id.viewpager);
        gridview = findViewById(R.id.gridview);
    }

    //当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        //解析JSON
        if (s != null){
            Gson gson = new Gson();
            BoBean boBean = gson.fromJson(s, BoBean.class);
            list = boBean.getResult().getProduct();
            list1 = boBean.getResult().getPics();
            //创建集合存放图片
            final ArrayList<ImageView> list2 = new ArrayList<>();
            //循环存入图片
            for (int i = 0; i <list1.size() ; i++) {
                ImageView imageView = new ImageView(Main2Activity.this);
                ImageLoader.getInstance().displayImage(list1.get(i).getPic(),imageView);
                list2.add(imageView);
            }

            //添加适配器
            viewpager.setAdapter(new PagerAdapter() {
                @Override
                public int getCount() {
                    return Integer.MAX_VALUE;
                }

                @Override
                public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
                    return view == o;
                }

                //添加
                @NonNull
                @Override
                public Object instantiateItem(@NonNull ViewGroup container, int position) {

                    ImageView imageView = list2.get(position%list2.size());
                    container.addView(imageView);
                    return imageView;
                }

                //删除
                @Override
                public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
                    container.removeView((View) object);
                }
            });
            //Handler发送消息
            handler.sendEmptyMessageDelayed(2,3000);
            //轮播图片点击事件
            viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

                private int y;

                @Override
                public void onPageScrolled(int i, float v, int i1) {

                }

                @Override
                public void onPageSelected(int i) {
                    i = i%list2.size();
                    y = i;
                    //给自动轮播的图片设置点击事件
                    list2.get(i).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            //隐式跳转进入web界面
                            Intent intent = new Intent(Main2Activity.this,Main3Activity.class);
                            //给图片添加网络路径
                            intent.putExtra("web",list1.get(y).getUrl());
                            startActivity(intent);
                        }
                    });
                }

                @Override
                public void onPageScrollStateChanged(int i) {

                }
            });
        }
        if (list != null){
            //给集合设置适配器
            gridview.setAdapter(new BaseAdapter() {
                @Override
                public int getCount() {
                    return list.size();
                }

                @Override
                public Object getItem(int position) {
                    return list.get(position);
                }

                @Override
                public long getItemId(int position) {
                    return position;
                }

                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    MyHolder myHolder = null;
                    if (convertView == null){
                        myHolder = new MyHolder();
                        convertView = View.inflate(Main2Activity.this, R.layout.activity_text, null);
                        myHolder.textView1= convertView.findViewById(R.id.textView1);
                        myHolder.textView2 = convertView.findViewById(R.id.textView2);
                        myHolder.imageView = convertView.findViewById(R.id.imageView);
                        convertView.setTag(myHolder);
                    }else {
                        myHolder = (MyHolder) convertView.getTag();
                    }
                    myHolder.textView1.setText(list.get(position).getName());
                    myHolder.textView2.setText(list.get(position).getMoney());

                    //图片异步加载使用Imageloader
                    ImageLoader.getInstance().displayImage(list.get(position).getImg(),myHolder.imageView);
                    return convertView;
                }
            });
        }
    }

    //更新进度
    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
    }
}
class  MyHolder{
    TextView textView1,textView2;
    ImageView imageView;
}

}

public class MainActivity extends AppCompatActivity {

int time = 2;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (time == 0){
            Intent intent = new Intent(MainActivity.this, Main2Activity.class);
            startActivity(intent);
        }
        time--;
        handler.sendEmptyMessageDelayed(0,1000);
    }
};
private ImageView dao;
private RotateAnimation animation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    dao = findViewById(R.id.dao);
    animation = new RotateAnimation(0, 360, 100, 100);
    animation.setDuration(2000);
    animation.setRepeatCount(2);
    animation.setRepeatMode(Animation.REVERSE);
    dao.startAnimation(animation);

    handler.sendEmptyMessageDelayed(0,1000);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值