package bwei.com.viewpager; 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.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RadioGroup; import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import static android.R.attr.banner; public class MainActivity extends AppCompatActivity { private ViewPager vp; private List<ImageView> imageViews = new ArrayList<ImageView>(); private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ String json = (String) msg.obj; try { JSONObject jsonObject = new JSONObject(json); JSONArray banner = jsonObject.getJSONArray("banner"); for (int i = 0; i< banner.length(); i++){ JSONObject jo = banner.getJSONObject(i); String image_url = jo.getString("image_url"); Log.i("aaa",image_url); ImageView imageview = new ImageView(MainActivity.this); DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(image_url,imageview,options); imageViews.add(imageview); } MyAdapter adapter = new MyAdapter(); vp.setAdapter(adapter); } catch ( Exception e) { e.printStackTrace(); } } } }; private RadioGroup radio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 vp = (ViewPager) findViewById(R.id.vp); radio = (RadioGroup) findViewById(R.id.radiogroup); getserveData(); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { radio.check(radio.getChildAt(position%imageViews.size()).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); } private void getserveData() { new Thread(new Runnable() { @Override public void run() { String path="http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner"; try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); if(conn.getResponseCode()==200){ InputStream inputStream = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len=0; while ((len=inputStream.read(buffer))!=-1){ bos.write(buffer,0,len); } inputStream.close(); bos.close(); String json = bos.toString(); Message message = new Message(); message.obj=json; message.what=0; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }).start(); } private class MyAdapter 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) { position %= imageViews.size(); ImageView imageView = imageViews.get(position); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } } //开始轮播 private void startWitch(){ handler.postDelayed(new Runnable() { @Override public void run() { int item = vp.getCurrentItem(); item++; vp.setCurrentItem(item); handler.postDelayed(this,2000); } },2000); } @Override protected void onResume() { super.onResume(); startWitch(); } }
网络获取图片轮播
最新推荐文章于 2023-05-24 11:00:14 发布