viewpager轮播图--狸菇凉_

  1.  
  2. packagecom.main.mouthtest;
  3.  
  4. import android.os.Bundle;
  5. import android.os.Handler;
  6. import android.os.Message;
  7. import android.support.v4.view.PagerAdapter;
  8. import android.support.v4.view.ViewPager;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.ImageView;
  13. import android.widget.LinearLayout;
  14. import android.widget.Toast;
  15.  
  16. import com.google.gson.Gson;
  17. import com.lidroid.xutils.HttpUtils;
  18. import com.lidroid.xutils.exception.HttpException;
  19. import com.lidroid.xutils.http.ResponseInfo;
  20. import com.lidroid.xutils.http.callback.RequestCallBack;
  21. import com.lidroid.xutils.http.client.HttpRequest;
  22. import com.main.bean.Weather_bean;
  23. import com.nostra13.universalimageloader.core.DisplayImageOptions;
  24. import com.nostra13.universalimageloader.core.ImageLoader;
  25.  
  26. import java.lang.ref.WeakReference;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29.  
  30.  
  31. /**
  32.  *时间:2017/4/28
  33.  * 类用途:Fragment1的类查询天气
  34.  */
  35.  
  36. public class Fragment1extends Fragment {
  37.  
  38.  
  39.     private staticViewPager view_pager;
  40.     private static List<View>dots;
  41.     private static int lodposition= 0;
  42.     private static int index= 0;
  43.     private ArrayList<String>arr;
  44.     private LinearLayoutlin_dot;
  45.     private boolean istrue= true;
  46.     private MyHandlermyHandler;
  47.  
  48.  
  49.    protected voidonCreate(Bundle savedInstanceState) {
  50.     super.onCreate(savedInstanceState);
  51.     setContentView(R.layout.f1);
  52.         istrue =true;
  53.         initview();
  54.  
  55.         pricture();
  56.  
  57.         //实例化
  58.         MyViewPagerAdapter adapter =new MyViewPagerAdapter();
  59.  
  60.         view_pager.setAdapter(adapter);
  61.  
  62.         setdot();
  63.  
  64.  
  65.         myHandler =new MyHandler((MainActivity) getActivity());
  66.  
  67.  
  68.  
  69.             new Thread(){
  70.  
  71.                 @Override
  72.                 public voidrun() {
  73.  
  74.                     while(istrue){
  75.                     try{
  76.                         sleep(1000);
  77.  
  78.                         myHandler.sendEmptyMessage(0);
  79.  
  80.                     }catch (InterruptedException e) {
  81.                         e.printStackTrace();
  82.                     }
  83.                     }
  84.                 }
  85.             }.start();
  86.  
  87.  
  88.     }
  89.  
  90.     //view_pager和设置小圆点的地方
  91.     public voidsetdot() {
  92.  
  93.  
  94.         //监听
  95.         view_pager.addOnPageChangeListener(newViewPager.OnPageChangeListener() {
  96.             @Override
  97.             public voidonPageScrolled(intposition, floatpositionOffset, intpositionOffsetPixels) {
  98.  
  99.             }
  100.  
  101.             @Override
  102.             public voidonPageSelected(intposition) {
  103.  
  104.                 dots.get(position %dots.size()).setBackgroundResource(R.mipmap.dot_true);
  105.                 dots.get(lodposition).setBackgroundResource(R.mipmap.doy_false);
  106.                 lodposition= (position % dots.size());
  107.  
  108.                 index= position;
  109.  
  110.             }
  111.  
  112.             @Override
  113.             public voidonPageScrollStateChanged(intstate) {
  114.  
  115.             }
  116.         });
  117.  
  118.  
  119.     }
  120.  
  121.     //加载图片
  122.     private voidpricture() {
  123.  
  124.         arr= newArrayList<>();
  125.  
  126.         arr.add("https://timgsa.baidu.com/timg?"+
  127.                 "image&quality=80&size=b9999_10000&sec=1493378180369&di=ea0f7952dd3fc7e202b26e7d70e3cbd9&"+
  128.                 "imgtype=0&src=http%3A%2F%2Fimg15.3lian.com%2F2015%2Fh1%2F35%2Fd%2F192.jpg");
  129.  
  130.         arr.add("https://timgsa.baidu.com/timg?"+
  131.                 "image&quality=80&size=b9999_10000&sec=1493378222373&di=acc62bc138e69acacbf6c8a9a2439f3d&"+
  132.                 "imgtype=0&src=http%3A%2F%2Fimg3.duitang.com%2Fuploads%2Fitem%2F201608%2F08%2F20160808124358_sH4Ea.thumb.700_0.jpeg");
  133.  
  134.         arr.add("https://timgsa.baidu.com/timg?"+
  135.                 "image&quality=80&size=b9999_10000&sec=1493378274676&di=f3349d7217e0f3b7269f16abc0d35b7e&"+
  136.                 "imgtype=0&src=http%3A%2F%2Fimg3.duitang.com%2Fuploads%2Fitem%2F201608%2F03%2F20160803105655_QMznk.thumb.700_0.jpeg");
  137.  
  138.  
  139.         /**
  140.          * for循环  小圆点的
  141.          */
  142.  
  143.         dots= newArrayList<View>();
  144.  
  145.         for (inti = 0;i < arr.size();i++) {
  146.  
  147.             View view = newView(getActivity());
  148.  
  149.             LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(30,30);
  150.  
  151.             view.setLayoutParams(layoutParams);
  152.  
  153.             dots.add(view);
  154.  
  155.             if (i ==0) {
  156.  
  157.                 dots.get(i).setBackgroundResource(R.mipmap.dot_true);
  158.  
  159.             }else {
  160.  
  161.                 dots.get(i).setBackgroundResource(R.mipmap.doy_false);
  162.  
  163.             }
  164.  
  165.             lin_dot.addView(dots.get(i));
  166.  
  167.         }
  168.  
  169.  
  170.     }
  171.  
  172.  
  173.     //各个控件的id和button_act的监听
  174.     private voidinitview() {
  175.  
  176.         lin_dot= (LinearLayout) getActivity().findViewById(R.id.lin_dot);
  177.  
  178.         //找到view_pager的控件
  179.         view_pager= (ViewPager) getActivity().findViewById(R.id.view_pager);
  180.  
  181.         button_act.setOnClickListener(newView.OnClickListener() {
  182.             @Override
  183.             public voidonClick(View v) {
  184.  
  185.                 getweather(edit_act.getText().toString());
  186.  
  187.             }
  188.         });
  189.  
  190.  
  191.     }
  192.  
  193.  
  194.     
  195.  
  196.     /**
  197.      * viewpager的适配器
  198.      */
  199.  
  200.     private classMyViewPagerAdapter extendsPagerAdapter {
  201.  
  202.  
  203.         @Override
  204.         public intgetCount() {
  205.             returnInteger.MAX_VALUE;
  206.         }
  207.  
  208.         @Override
  209.         public booleanisViewFromObject(View view,Object object) {
  210.             returnview == object;
  211.         }
  212.  
  213.         @Override
  214.         public voiddestroyItem(ViewGroup container, intposition,Object object) {
  215.  
  216.         }
  217.  
  218.         @Override
  219.         publicObject instantiateItem(ViewGroup container, final intposition) {
  220.  
  221.             ImageView imageView = new ImageView(getActivity());
  222.  
  223.             DisplayImageOptions builder =new DisplayImageOptions.Builder()
  224.                     .showImageOnLoading(R.mipmap.ic_launcher)
  225.                     .showImageOnFail(R.mipmap.ic_launcher)
  226.                     .cacheOnDisk(true)
  227.                     .cacheInMemory(false)
  228.                     .build();
  229.  
  230.             //youcuo
  231.             ImageLoader.getInstance().displayImage(arr.get(position % arr.size()),imageView,builder);
  232.  
  233.  
  234.             imageView.setOnClickListener(newView.OnClickListener() {
  235.                 @Override
  236.                 public voidonClick(View v) {
  237.                     Toast.makeText(getActivity(),"点击了"+ position,Toast.LENGTH_SHORT).show();
  238.                 }
  239.             });
  240.  
  241.  
  242.             container.addView(imageView);
  243.  
  244.             return imageView;
  245.         }
  246.  
  247.  
  248.     }
  249.  
  250.  
  251.     //失去焦点
  252.     @Override
  253.     public voidonPause() {
  254.         super.onPause();
  255.         istrue= false;
  256.  
  257.     }
  258.  
  259.  
  260.  
  261.     private static classMyHandler extendsHandler{
  262.  
  263.         private finalWeakReference<MainActivity> reference;
  264.  
  265.         public MyHandler(MainActivity mainActivity) {
  266.             reference= newWeakReference<>(mainActivity);
  267.  
  268.         }
  269.  
  270.         @Override
  271.         public voidhandleMessage(Message msg) {
  272.             super.handleMessage(msg);
  273.  
  274.             if (reference.get() !=null) {
  275.  
  276.                 switch(msg.what){
  277.  
  278.                     case0:
  279.                     {
  280.  
  281.                         view_pager.setCurrentItem(index,false);
  282.                         index++;
  283.                     }
  284.                         break;
  285.  
  286.  
  287.  
  288.                 }
  289.  
  290.             }
  291.  
  292.         }
  293.     }
  294.  
  295.  
  296. }
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值