虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android viewpager无限轮播获取网络图片功能

Android viewpager无限轮播获取网络图片功能
类别:Android编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了Android viewpager无限轮播获取网络图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了viewpager无限轮播获取网络图片的具体代码,供大家参考,具体内容如下

话不多说直接上代码,你们都懂的

小圆点属性

dot_focused.xml

    <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#f00"/> <corners android:radius="8dp"/></shape>

 dot_normal.xml

    <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#88000000"/> <corners android:radius="8dp"/></shape> 

dot_layout.xml  

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <View android:id="@+id/scrollView" android:layout_width="8dp" android:layout_height="8dp" android:layout_margin="3dp" android:background="@drawable/dot_normal" /></LinearLayout>

activity_main.xml

    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/ll" android:layout_marginTop="450dp" android:orientation="horizontal" android:gravity="center" android:layout_width="match_parent" android:layout_height="20dp"/> </RelativeLayout>

以上是布局

下面src代码

    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import com.bwie.bean.SuperClass;
    import com.bwie.utils.NetWorkUtils;
    import com.bwie.utils.URLDB;
    import com.google.gson.Gson;
    import com.nostra13.universalimageloader.core.ImageLoader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;
    public class MainActivity extends AppCompatActivity {
    private ViewPager viewPager;
    private Button bt;
    private LinearLayout layout;
    private List<SuperClass.ResultBean.DataBean> data;
    private NetWorkUtils netWorkUtils = new NetWorkUtils();
    //实例化工具类 private List<ImageView>imgs = new ArrayList<ImageView>();
    //图片的集合 private List<View> dots = new ArrayList<View>();
    //小圆点集合 private int i = 0;
    private int dot = 0;
    private Handler handler = new Handler(){
    @Override public void handleMessage(Message msg) {
    super.handleMessage(msg);
    viewPager.setCurrentItem(i);
    dots.get(dot).setBackgroundResource(R.drawable.dots_normal);
    dots.get(i%imgs.size()).setBackgroundResource(R.drawable.dots_focus);
    dot=i%imgs.size();
    }
    }
    ;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //异步网络请求 new AsyncTask<String,Integer,String>(){
    @Override protected String doInBackground(String... params) {
    String json = netWorkUtils.getJsonHttpConnetion(URLDB.URL_IJ);
    return json;
    }
    @Override protected void onPostExecute(String s) {
    super.onPostExecute(s);
    SuperClass superClass = new Gson().fromJson(s, SuperClass.class);
    data = superClass.getResult().getData();
    init();
    //初始化方法 }
    }
    .execute();
    }
    //初始化方法 private void init() {
    viewPager = (ViewPager) findViewById(R.id.viewPager);
    layout = (LinearLayout) findViewById(R.id.ll);
    getImgs();
    //获取图片 getDots();
    //获取小圆点 //viewPager适配器 viewPager.setAdapter(new PagerAdapter() {
    @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, int position) {
    int i = position % imgs.size();
    ImageView imageView = imgs.get(i);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    container.addView(imageView);
    return imageView;
    }
    @Override public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((View) object);
    }
    }
    );
    //设置初始化位置 i = imgs.size()*10;
    //得到位置 viewPager.setCurrentItem(i);
    //设置第一个圆点为true dots.get(0).setBackgroundResource(R.drawable.dots_focus);
    //timer自动轮播 Timer timer = new Timer();
    timer.schedule(new TimerTask() {
    @Override public void run() {
    i = viewPager.getCurrentItem() + 1;
    handler.sendEmptyMessage(i);
    }
    }
    ,1,2000);
    }
    //图片的方法 private void getImgs() {
    for(int i = 0;
    i<data.size();
    i++){
    List<SuperClass.ResultBean.DataBean.StepsBean> steps = data.get(i).getSteps();
    String url = steps.get(0).getImg();
    ImageView img = new ImageView(this);
    img.setScaleType(ImageView.ScaleType.FIT_XY);
    ImageLoader.getInstance().displayImage(url,img);
    imgs.add(img);
    }
    }
    //小圆点的方法 private void getDots() {
    for(int i=0;
    i<imgs.size();
    i++){
    View view = LayoutInflater.from(this).inflate(R.layout.dot_item,null);
    View viewById = view.findViewById(R.id.scrollView);
    dots.add(viewById);
    layout.addView(view);
    }
    }
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关热词搜索: viewpager无限轮播 viewpager获取网络图片