ViewPager加点

来源:互联网 发布:dnf数据异常 编辑:程序博客网 时间:2024/04/28 07:10
<?xml version="1.0" encoding="utf-8"?><shape  xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="#ff00"></solid>    <size android:height="1dip" android:width="1dip" ></size>    <corners android:radius="1dip"></corners></shape>


<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.day15_viewpager.MainActivity"    android:orientation="vertical">    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="200dp">        <android.support.v4.view.ViewPager            android:layout_width="match_parent"            android:layout_height="match_parent"            android:id="@+id/vp1"></android.support.v4.view.ViewPager>        <LinearLayout            android:id="@+id/ll"            android:layout_alignParentBottom="true"            android:orientation="horizontal"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="center"></LinearLayout>    </RelativeLayout></LinearLayout>

package com.example.day15_viewpager;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.widget.ImageView;import android.widget.LinearLayout;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int what = msg.what;            switch (what){                case 0:                    String obj = (String) msg.obj;                    GetData(obj);                    break;                case 1:                    int currentItem = vp1.getCurrentItem();                    currentItem++;                    vp1.setCurrentItem(currentItem);                    sendMsg();                    break;            }        }    };    private ViewPager vp1;    private LinearLayout ll;    private List<ImageView> ivList;    private List<JaonBean.DataBean.AdlistBean> adlist;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        new Thread(){            @Override            public void run() {                super.run();                String json = NetWorkUtils.getJson();                Message message = new Message();                message.obj=json;                message.what=0;                handler.sendMessage(message);            }        }.start();        vp1 = (ViewPager) findViewById(R.id.vp1);        ll = (LinearLayout) findViewById(R.id.ll);    }    private void GetData(String obj) {        Gson gson = new Gson();        JaonBean jaonBean = gson.fromJson(obj, JaonBean.class);        JaonBean.DataBean data = jaonBean.getData();        adlist = data.getAdlist();        MyAdapter myAdapter = new MyAdapter(adlist, MainActivity.this);        vp1.setAdapter(myAdapter);        initData();        vp1.setCurrentItem(100000);        sendMsg();        ViewPagerListener();    }    private void ViewPagerListener() {        vp1.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 < ivList.size(); i++) {                    if (position%adlist.size()==i){                        ivList.get(position%adlist.size()).setImageResource(R.drawable.dot_focuable);                    }else {                        ivList.get(i).setImageResource(R.drawable.dot_normal);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void initData() {        ivList = new ArrayList<>();        if (ivList!=null){            ivList.clear();        }        for (int c = 0; c < adlist.size(); c++) {            iv = new ImageView(MainActivity.this);            if (c==0){                iv.setImageResource(R.drawable.dot_focuable);            }else {                iv.setImageResource(R.drawable.dot_normal);            }            LinearLayout.LayoutParams parmes = new LinearLayout.LayoutParams(20, 20);            parmes.setMargins(10,0,10,0);            ll.addView(iv,parmes);            ivList.add(iv);        }    }    private void sendMsg() {        handler.sendEmptyMessageDelayed(1,3000);    }}
viewPager

的Adapter

package com.example.day15_viewpager;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * author:Created by WangZhiQiang on 2017/9/14. */public class MyAdapter extends PagerAdapter{    private List<JaonBean.DataBean.AdlistBean> adlist;    private Context con;    public MyAdapter(List<JaonBean.DataBean.AdlistBean> adlist, Context con) {        this.adlist = adlist;        this.con = con;    }    @Override    public int getCount() {        return Integer.MAX_VALUE;    }    @Override    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView((View) object);    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        ImageView imageView = new ImageView(con);        /*imageView.setScaleType(ImageView.ScaleType.FIT_XY);*/        ImageLoader.getInstance().displayImage(adlist.get(position%adlist.size()).getImg(),imageView);        container.addView(imageView);        return imageView;    }}

package com.example.day15_viewpager;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * author:Created by WangZhiQiang on 2017/9/14. */public class NetWorkUtils {    private static String path="http://www.meirixue.com/api.php?c=index&a=index";    private URL url;    private static ByteArrayOutputStream outputStream;    public static String getJson(){        try {            URL url = new URL(path);            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();            urlConnection.setRequestMethod("GET");            urlConnection.setConnectTimeout(5000);            int responseCode = urlConnection.getResponseCode();            outputStream = new ByteArrayOutputStream();            if (responseCode==200){                InputStream inputStream = urlConnection.getInputStream();                byte[] bytes = new byte[1024];                int i;                while ((i=inputStream.read(bytes))!=-1){                    outputStream.write(bytes,0,i);                }            }        } catch (Exception e) {            e.printStackTrace();        }        return outputStream.toString();    }}
package com.example.day15_viewpager;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * author:Created by WangZhiQiang on 2017/9/14. */public class MyApp extends Application{    @Override    public void onCreate() {        super.onCreate();        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(MyApp.this).build();        ImageLoader.getInstance().init(build);    }}
 





原创粉丝点击