ViewPager无限轮播图+小圆点+HttpURLConnection +handler+Thread
2016-06-30 15:20
549 查看
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
public class DetailActivity extends Activity {
private Gallery[] galleries;
private ViewPager vp;
private LinearLayout ll;
private ArrayList ivList;
}
//MyPagerAdapter
public class MyPagerAdapter extends PagerAdapter {
private Context context;
private Gallery[] galleries;
}
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
public class DetailActivity extends Activity {
private Gallery[] galleries;
private ViewPager vp;
private LinearLayout ll;
private ArrayList ivList;
Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { if (msg.what==0) { //msg.obj; //设置适配器 vp.setAdapter(new MyPagerAdapter(DetailActivity.this)); //设置监听 vp.setOnPageChangeListener(new OnPageChangeListener() { public void onPageSelected(int arg0) { for (int i = 0; i < ivList.size(); i++) { if (arg0%5==i) { ivList.get(i).setImageResource(R.drawable.dot_select); }else{ ivList.get(i).setImageResource(R.drawable.dot); } } } public void onPageScrolled(int arg0, float arg1, int arg2) { } public void onPageScrollStateChanged(int arg0) { } }); } if (msg.what==1) { int currentItem = vp.getCurrentItem(); currentItem++; vp.setCurrentItem(currentItem); handler.sendEmptyMessageDelayed(1, 2000); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); vp = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.ll); //初始化小圆点 initDot(); getData("http://..."); //实现轮播 handler.sendEmptyMessageDelayed(1, 2000); } public void initDot(){ ivList = new ArrayList<ImageView>(); for (int i = 0; i <galleries.length; i++) { ImageView iv = new ImageView(this); if (i==0) { iv.setImageResource(R.drawable.dot_select); }else{ iv.setImageResource(R.drawable.dot); } ivList.add(iv); LayoutParams params=new LayoutParams(20, 20); params.setMargins(5, 0, 5, 0); ll.addView(iv, params); } } //获取网络数据 private void getData(final String string) { new Thread(new Runnable() { public void run() { try { URL url = new URL(string); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); int responseCode = connection.getResponseCode(); if (responseCode==200) { InputStream inputStream = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); Gson g = new Gson(); goodsDtails gd = g.fromJson(br, goodsDtails.class); handler.obtainMessage(0, gd).sendToTarget(); } } catch (Exception e) { e.printStackTrace(); } } }).start(); }
}
//MyPagerAdapter
public class MyPagerAdapter extends PagerAdapter {
private Context context;
private Gallery[] galleries;
public MyPagerAdapter(Context context, Gallery[] galleries) { super(); this.context = context; this.galleries = galleries; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public int getCount() { return Integer.MAX_VALUE; } public Object instantiateItem(android.view.ViewGroup container, int position) { ImageView iv = new ImageView(context); ImageLoader.getInstance().displayImage(galleries[position%galleries.length].normal_url, iv); container.addView(iv); return iv; }; public void destroyItem(android.view.ViewGroup container, int position, Object object) { container.removeView((View) object); };
}
相关文章推荐
- Uncaught NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///E:/test
- HttpUrlConnection-post请求
- HttpUrConnection_get请求======
- iOS9 http请求换成https请求
- Xml pull解析,XUtils网络请求
- HttpURLConnection用法详解
- 网络理解
- 检查当前网络状态
- http请求带了参数 form序列化 乱码
- NoHttp使用简析——Android网络请求框架(二)
- Http
- AndroidStudio 更新失败,sdk更新失败。http://www.android-studio.org/ 下载AS安装包 跳转到Google,无法下载
- 全局免流原理
- XMLHttpRequest对象
- Linux wget下载https类型文件报错解决方法
- windows 端口转发自带工具 配合n2n用(该工具在本地转发的端口只能在本地访问 ,这一点太不爽了,还是用https://boutell.com/rinetd/方便些)
- 神经网络之激活函数(Activation Function)
- 在MyEclipse中写的工程引入到eclipse下出现错误 发现import javax.servlet.http.HttpSession无法引入
- Linux 网络配置
- jQuery请求网络(Access-Control-Allow-Origin)