fragment ,轮播 实现

来源:互联网 发布:程序员入门书籍 编辑:程序博客网 时间:2024/06/06 02:13
package com.example.administrator.cr_yk1.Fragment;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.text.LoginFilter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.example.administrator.cr_yk1.Myadaptervp;
import com.example.administrator.cr_yk1.R;
import com.example.administrator.cr_yk1.bean.BBnn;
import com.example.administrator.cr_yk1.bean.Been;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/8/22.
 */
public class Fragment1 extends Fragment {
    ViewPager  vp;
    ArrayList<String> li;
    LinearLayout   do_layout;
    int currpostion;
    ListView   lv;

    BBnn been;

   Myadapter  dadpter;
//===========定义的线程
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            currpostion++;
            vp.setCurrentItem(currpostion);
            handler.sendEmptyMessageDelayed(0,2000);
            super.handleMessage(msg);
        }
    };

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=View.inflate(getActivity(), R.layout.f1,null);
//Viewpagerde轮播=============
         vp=(ViewPager) view.findViewById(R.id.vp);
         do_layout=(LinearLayout) view.findViewById(R.id.dot_layout);
         li=new ArrayList<>();
         inid();
         indot();
        //创建Myadaptervp的对象
        Myadaptervp  ada=new Myadaptervp(getActivity(),li);
        vp.setAdapter(ada);
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

                for(int i=0;i<do_layout.getChildCount();i++)
                {
                   ImageView iv=(ImageView) do_layout.getChildAt(i);
                    if(i==position%li.size())
                    {
                        iv.setImageResource(R.drawable.dot_select);
                    }else {
                        iv.setImageResource(R.drawable.dot_normal);
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

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



//===============ImageLoaderConfiguration 的初始化============
        ImageLoaderConfiguration config=ImageLoaderConfiguration.createDefault(getActivity());
        ImageLoader.getInstance().init(config);
        DisplayImageOptions options=DisplayImageOptions.createSimple();


        //========================ListView==============
        lv=(ListView) view.findViewById(R.id.lv);
        intoData();
        dadpter=new Myadapter();
        lv.setAdapter(dadpter);


        return view;
    }

    //小圆点的操作
    private void indot() {
        for(int i=0;i<li.size();i++)
        {
           ImageView  iv=new ImageView(getActivity());
            if(i==0)
            {
                iv.setImageResource(R.drawable.dot_select);
            }else {
                iv.setImageResource(R.drawable.dot_normal);
            }
            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
            params.setMargins(10,5,10,5);
            do_layout.addView(iv,params);
        }

    }

    //添加集合的图片
    private void inid() {
        li.add("http://image.wufazhuce.com/FuPgOcbGDD9__fyuCdPBXb5pbA1C");
        li.add("http://image.wufazhuce.com/Fu6o0fqKHsI_TjdpPX3N2Kc99vNP");
        li.add("http://image.wufazhuce.com/FmDRnQ1XhReHRHB4jYqAPSx8htsP");
        li.add("http://image.wufazhuce.com/FvVmWbqlle7jlUCTeozoval9NyBH");

    }






    //lv的适配器
  class   Myadapter  extends BaseAdapter{
      @Override
      public int getCount() {
          if(been!=null)
          {
             return been.getData().size();
          }
          return 0;
      }

      @Override
      public Object getItem(int i) {
          return null;
      }

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

      @Override
      public View getView(int i, View view, ViewGroup viewGroup) {
       ViewHolder holder;
          if(view==null)
          {
              holder=new ViewHolder();
              view=View.inflate(getActivity(),R.layout.f1_item,null);
              holder.tv=(TextView) view.findViewById(R.id.tv);
              holder.tv22=(TextView) view.findViewById(R.id.tv22);
              holder.iv=(ImageView) view.findViewById(R.id.iv);

              view.setTag(holder);
          }else {
              holder=(ViewHolder) view.getTag();
          }
          holder.tv.setText(been.getData().get(i).getTitle());
          holder.tv22.setText(been.getData().get(i).getContent());
          ImageLoader.getInstance().displayImage(been.getData().get(i).getImage_url(),holder.iv);

          return view;
      }
  }


    class ViewHolder{
        ImageView   iv;
        TextView    tv;
        TextView    tv22;
    }

    //实际操作的方法
    private  void intoData(){
        new AsyncTask<String,String,String>(){
            @Override
            protected String doInBackground(String... strings) {
                String    sss=gethtturl();

                return sss;
            }

            @Override
            protected void onPostExecute(String s) {
                Gson gson=new Gson();
                been=gson.fromJson(s,BBnn.class);

                dadpter.notifyDataSetChanged();
                super.onPostExecute(s);
            }
        }.execute();
    }


//网络获取的11111
    private String gethtturl(){
        String getstr="";
        try {
            URL url=new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=one");

            HttpURLConnection connection=(HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            int code=connection.getResponseCode();
            if(code==200)
            {
                InputStream  inputStream=connection.getInputStream();
                ByteArrayOutputStream  bos=new ByteArrayOutputStream();
                byte[] b=new byte[1024];
                int len=-1;
                while ((len=inputStream.read(b))!=-1)
                {
                    bos.write(b,0,len);
                }
                getstr=new String(bos.toByteArray());

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


}

原创粉丝点击