ViewPager动态添加小圆点
来源:互联网 发布:手机淘宝怎么没有社区 编辑:程序博客网 时间:2024/05/18 15:24
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... voids) {
String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=5&page=1";
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
if (responseCode == 200){
InputStream inputStream = connection.getInputStream();
String json = streamToString(inputStream,"utf-8");
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
//打印以下数据看看是否获取到
Log.i("----",s);
if (s != null){
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
List<DataDataBean.DataBean> list = dataDataBean.getData();
//给viewPager设置适配器
MyAdapter myAdapter = new MyAdapter(MainActivity.this, list,handler);
//设置适配器
viewPager.setAdapter(myAdapter);
//3.根据集合的长度动态添加小圆点...linearLayout
initDoc(list);
//2.手动的可以无限滑动
viewPager.setCurrentItem(list.size()*100000);//设置当前展示中间某个足够大的位置
handler.sendEmptyMessageDelayed(0,2000);//发送一个延时的空消息
//viewPage设置监听事件
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
/**
* 当选中某个页面的时候,把当前的小圆点背景变成绿色
* @param position
*/
@Override
public void onPageSelected(int position) {
for (int i=0;i<images.size();i++){
if (i == position%images.size()){
images.get(i).setImageResource(R.drawable.shape_01);
}else {
images.get(i).setImageResource(R.drawable.shape_02);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
};
asyncTask.execute();
}
/**
* 动态添加小圆点
* @param list
*/
private void initDoc(List<DataDataBean.DataBean> list) {
//1.需要一个集合记录一下小圆点的imageView控件
images = new ArrayList<ImageView>();
//2...linearLayout上面的视图清空一下再去添加
linearLayout.removeAllViews();
for (int i=0;i<list.size();i++){
ImageView imageView = new ImageView(MainActivity.this);
if (i==0){
imageView.setImageResource(R.drawable.shape_01);
}else {
imageView.setImageResource(R.drawable.shape_02);
}
//添加到集合去
images.add(imageView);
//添加到线性布局上
//这是布局参数,,刚开始小圆点之间没有距离,所以使用java代码指定宽度高度,并且指定小圆点之间的距离
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(5,0,5,0);
linearLayout.addView(imageView,params);
}
}
//下面是适配器
@Override
public Object instantiateItem(ViewGroup container, int position) {
//1.把这个当前展示的视图添加到容器中...container
ImageView imageView = new ImageView(context);
//..........使图片平铺整个imageView控件
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
//imageLoader加载图片到这个imageView控件上
ImageLoader.getInstance().displayImage(list.get(position %list.size()).getImg(),imageView,ImageLoaderUtil.getDefaultOption());
//给imageView设置触摸的监听事件
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
int action = motionEvent.getAction();//获取手指的动作
switch (action){
case MotionEvent.ACTION_DOWN://按下的动作...应该取消发送消息的操作
handler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_MOVE://移动的动作
handler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_CANCEL://取消
//重新发送
handler.sendEmptyMessageDelayed(0,2000);
break;
case MotionEvent.ACTION_UP://抬起的动作
handler.sendEmptyMessageDelayed(0,2000);
break;
}
//返回true表示自己处理触摸事件
return true;
}
});
container.addView(imageView);//添加到容器
//2.把当前展示的视图返回
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//销毁视图
container.removeView((View) object);
}
- viewpager动态添加小圆点
- ViewPager动态添加小圆点
- ViewPager动态添加小圆点
- [ViewPager、二]ViewPager 小圆点 动态添加
- 动态添加小圆点
- 动态添加viewpager中的item以及小圆点指示器
- viewpager生成动态小圆点
- viewpager添加小圆点的方法
- viewpager 动态加载 和小圆点
- ViewPager中代码动态的添加小圆点作为指示器indicator,以及实现无限轮播
- 图片viewpage动态添加小圆点
- ViewPager加小圆点
- ViewPager+小圆点
- viewpager加小圆点
- viewpager+小圆点
- viewpager+小圆点
- viewpager画小圆点
- viewPager小圆点
- 新手浅见,学习笔记(机器学习中的图像特征提取)
- TCP三次握手四次分手
- Python 多线程死锁
- postman中 form-data、x-www-form-urlencoded、raw、binary的区别
- Appium安装
- ViewPager动态添加小圆点
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- 传递参数的技巧
- DataBinding系列(四):DataBinding进阶之路
- PAT乙级1070. 结绳(25)
- 小白浅谈android开发
- 常用的文件比较工具
- java内省
- delphi中使用sql语句加条件引用时值是一个整型变量的问题