您的位置:首页 > 其它

ViewPager无限轮播+GridView图片展示

2017-09-16 09:28 507 查看

MainActivity

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.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

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

public class MainActivity extends AppCompatActivity {

private List<Bean.DataBean.EssayBean> list;
private String path = "http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android";
private GridView gv;
private ViewPager vp;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
int currentItem = vp.getCurrentItem();
vp.setCurrentItem(currentItem + 1);
handler.sendEmptyMessageDelayed(0, 2000);
}
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gv = (GridView) findViewById(R.id.gv);
vp = (ViewPager) findViewById(R.id.vp);

new My().execute();
}

class My extends AsyncTask {

@Override
protected Object doInBackground(Object[] objects) {
String string = "";
try {
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
int code = con.getResponseCode();
if (code == 200) {
InputStream is = con.getInputStream();
byte[] b = new byte[1024];
int l = 0;
while ((l = is.read(b)) != -1) {
String str = new String(b, 0, l);
string += str;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return string;
}

@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
Gson gson = new Gson();
list = gson.fromJson((String) o, Bean.class).getData().getEssay();
// Toast.makeText(MainActivity.this,essay.toString().trim(),Toast.LENGTH_SHORT).show();
MyAdapter myAdapter = new MyAdapter();
gv.setAdapter(myAdapter);

ImgAdapter adapter = new ImgAdapter();
vp.setAdapter(adapter);
vp.setCurrentItem(list.size() * 10000);
handler.sendEmptyMessageDelayed(0, 2000);
}
}

class ImgAdapter extends 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) {
ImageView imageView = new ImageView(MainActivity.this);
ImageLoader.getInstance().displayImage(list.get(position % list.size()).getAuthor().get(0).getWeb_url(), imageView);
container.addView(imageView);
return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}

class MyAdapter extends BaseAdapter {

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int i) {
return list.get(i);
}

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

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Hand hand;
if (view == null) {
view = View.inflate(MainActivity.this, R.layout.item, null);
hand = new Hand();
hand.img = view.findViewById(R.id.img);
hand.te = view.findViewById(R.id.te);
view.setTag(hand);
} else {
hand = (Hand) view.getTag();
}
hand.te.setText(list.get(i).getAuthor().get(0).getUser_name());

String pic_s = list.get(i).getAuthor().get(0).getWeb_url();
ImageLoader instance = ImageLoader.getInstance();
instance.displayImage(pic_s, hand.img,ImageLoaderUtil.getDefaultOption());
return view;
}
}

class Hand {
ImageView img;
TextView te;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: