Android viewpager无限轮播获取网络图片功能
程序员文章站
2023-12-16 15:56:10
本文实例为大家分享了viewpager无限轮播获取网络图片的具体代码,供大家参考,具体内容如下
话不多说直接上代码,你们都懂的
小圆点属性
dot_focused.x...
本文实例为大家分享了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); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。