自定义view

来源:互联网 发布:深圳入学积分怎么算法 编辑:程序博客网 时间:2024/06/11 18:27
public class Autopager extends LinearLayout {    private ViewPager vp;    private LinearLayout ll;    private View inflate;    private List<ImageView> image = new ArrayList<>();    private int item = 0;    private ImageView imageView;    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            vp.setCurrentItem(item);        }    };    public Autopager(Context context) {        this(context, null);    }    public Autopager(Context context, @Nullable AttributeSet attrs) {        this(context, attrs, 0);    }    public Autopager(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        inflate = View.inflate(context, R.layout.carousebj, this);        init();    }    private void init() {        vp = inflate.findViewById(R.id.vp);        ll = findViewById(R.id.ll);        jiadian();        handler.sendEmptyMessage(5000);        vp.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 < image.size(); i++) {                    ImageView imageView = image.get(position % image.size());                    if(position%image.size()==i){                        imageView.setImageResource(R.drawable.bb);                    }else{                        image.get(i).setImageResource(R.drawable.aa);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    public void tim() {        Log.e("chen", "tim: -------------"+"我自动轮播" );        Timer timer = new Timer();        timer.schedule(new TimerTask() {            @Override            public void run() {                ++item;                handler.sendEmptyMessage(0);            }        }, 0, 5000);//        ++item;//        handler.sendEmptyMessageDelayed(1, 5000);    }    public void jiadian() {        Log.e("chen", "jiadian: -------------"+"我添加原点" );        //得到LinearLayout布局        if(image!=null){            image.clear();//清空图片集合        }        ll.removeAllViews();//清空LinearLayout布局        for (int i=0;i<4;i++)//添加        {            //创建一个图片布局            imageView = new ImageView(getContext());            if(i==0)            {                imageView.setImageResource(R.drawable.bb);                Log.e("chen", "jiadian: -------------"+"我是第一张" );            }else{                imageView.setImageResource(R.drawable.aa);                Log.e("chen", "jiadian: -------------"+"我是第234张" );            }            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);//圆点大小            image.add(imageView);//圆点添加到图片集合中            ll.addView(imageView,layoutParams);//圆点添加到LinearLayout中            Log.e("chen", "jiadian: -------------"+"我已经添加了" );        }    }    public void setadap(cpspq pp) {        vp.setAdapter(pp);    }}


//适配器

public class cpspq extends PagerAdapter{    private Context context;    private ArrayList<tu> arr;    private Myurl dizhi;    public cpspq(Context context, ArrayList<tu> arr,Myurl dizhi) {        this.context = context;        this.arr = arr;        this.dizhi=dizhi;    }    @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, final int position) {        ImageView imageView = new ImageView(context);        imageView.setScaleType(ImageView.ScaleType.FIT_XY);//        imageView.setImageResource(R.mipmap.ic_launcher);//        Log.e("qweqwe","wqewqe"+arr.get(position).toString());        ImageLoader.getInstance().displayImage(arr.get(position%arr.size()).getTu(),imageView);        container.addView(imageView);        imageView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {            dizhi.Jiekou(position%arr.size());                Log.e("chen", "onClick: ========"+position%arr.size() );            }        });        return imageView;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView((View) object);    }}

//Main请求网络

public class MainActivity extends AppCompatActivity implements Myurl {    ArrayList<tu> tuarr = new ArrayList<>();    private Autopager chenxu;    private ViewPager vv;    private List<ImageView> image = new ArrayList<>();    private LinearLayout ll;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        new MAsyncTask().execute("http://120.27.23.105/ad/getAd");        vv = (ViewPager) findViewById(R.id.vp);        ll = (LinearLayout) findViewById(R.id.ll);        chenxu = (Autopager) findViewById(R.id.chenxu);//        chenxu.setadap(new cpspq(MainActivity.this,tuarr));        chenxu.tim();//        chenxu.jiadian();//        vv.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {//            @Override//            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {//                for (int i = 0; i < tuarr.size(); i++) {//                    ImageView imageView = ivList1.get(position % tuarr.size());//                    if(position%ivList1.size()==i){//                        imageView.setImageResource(R.drawable.bb);//                    }else{//                        ivList1.get(i).setImageResource(R.drawable.aa);//                    }//                }//            }////            @Override//            public void onPageSelected(int position) {////            }////            @Override//            public void onPageScrollStateChanged(int state) {////            }//        });    }    @Override    public void Jiekou(int oo) {        String lj = tuarr.get(oo).getLj();        Log.e("chen", "Jiekou: " + "我要跳转了" + lj);        if (oo == 3) {            Toast.makeText(MainActivity.this, "我要跳转了", Toast.LENGTH_SHORT).show();        } else {            Intent intent = new Intent(MainActivity.this, Main2Activity.class);            intent.putExtra("dz", lj);            startActivity(intent);        }    }    class MAsyncTask extends AsyncTask<String, Void, String> {        //这个是请求网络之前的调用的方法,也是最先调用的方法,可以初始化一些ui等;这个方法是在主线程里运行的//可以不写        @Override        protected void onPreExecute() {            super.onPreExecute();        }        @Override        protected String doInBackground(String... strings) {            StringBuilder stringBuilder = new StringBuilder();            String s = "";            try {//拼接字符串,拼接完成之后进行返回                URL url = new URL(strings[0]);                URLConnection urlConnection = url.openConnection();                InputStream inputStream = urlConnection.getInputStream();                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));                while ((s = bufferedReader.readLine()) != null) {                    stringBuilder.append(s);                }                String pjsj = stringBuilder.toString();                Log.e("chen", "doInBackground: 拼接的内容" + pjsj);            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }            return stringBuilder.toString();        }        @Override        protected void onPostExecute(String s) {//连接适配器            super.onPostExecute(s);            Gson gson = new Gson();            jiexibean jiexibean = gson.fromJson(s, jiexibean.class);            List<com.example.zhoukaomoni.jiexibean.DataBean> data = jiexibean.getData();            for (int i = 0; i < data.size(); i++) {                String icon = data.get(i).getIcon();                String url = data.get(i).getUrl();                tuarr.add(new tu(icon, url));            }            chenxu.setadap(new cpspq(MainActivity.this, tuarr, MainActivity.this));            Log.e("chen", "onPostExecute: " + tuarr);        }    }}




原创粉丝点击