闲着没事 一个简单的轮播图实现
来源:互联网 发布:用java写99乘法表 编辑:程序博客网 时间:2024/05/29 13:23
public class AutoViewPager extends LinearLayout { private ViewPager vp; private LinearLayout container; private LinearLayout.LayoutParams dotParams; private Timer timer; public AutoViewPager(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init(){ inflate(getContext(), R.layout.auto_viewpager_layout,this); vp= (ViewPager)findViewById(R.id.vp); container= (LinearLayout) findViewById(R.id.dot_container); dotParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); dotParams.leftMargin= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,10,getResources().getDisplayMetrics()); timer=new Timer(); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i=0;i<dots.size();i++){ if (position==i){ dots.get(i).setImageResource(R.drawable.red_dot); }else { dots.get(i).setImageResource(R.drawable.black_dot); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } private List<ImageView>dots=new ArrayList<>(); public void setImages(List<ImageView> images){ vp.setAdapter(new VpAdapter(images)); for (int i=0;i<images.size();i++){ ImageView dot= new ImageView(getContext()); dot.setImageResource(R.drawable.black_dot); container.addView(dot); dots.add(dot); if (i!=0){ dot.setLayoutParams(dotParams); } } timer.schedule(new MTimer(),1000,2000); } private class MTimer extends TimerTask{ @Override public void run() { Message msg=Message.obtain(); msg.what=1; mHandler.sendMessage(msg); } } int vpIndex=0; private Handler mHandler =new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==1){ if (vpIndex==7){ vpIndex=0; } vp.setCurrentItem(vpIndex++); } } }; private class VpAdapter extends PagerAdapter{ List<ImageView> imageViews; public VpAdapter(List<ImageView> imageViews){ this.imageViews=imageViews; } @Override public int getCount() { return imageViews.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(imageViews.get(position)); return imageViews.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(imageViews.get(position)); } }}
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <LinearLayout android:layout_gravity="bottom" android:gravity="center" android:orientation="horizontal" android:id="@+id/dot_container" android:layout_width="match_parent" android:layout_height="20dp"> </LinearLayout></FrameLayout>
很简单的东西 就是一个布局封装的定时任务
0 0
- 闲着没事 一个简单的轮播图实现
- 闲着没事写的一个简单的连接池
- 转载的,闲着没事时看看。
- 那天闲着没事,试着编了一个木马
- 闲着没事做:程序员的核心竞争力是什么?为什么?
- 闲着没事,写了个线性回归的源代码
- 闲着没事,美化一下phpinfo
- 今天js群里,有人问一个函数,闲着没事,自己就写了写
- 【C语言】没事可以试试这个小程序,使用文件操作,模拟实现一个简单的文件拷贝工具!
- 闲着没事从别的服务器上备份过的数据库文件出现的问题
- 闲着没事干,来算一下网上的越南数学题吧
- 很早以前闲着没事好玩写了个php自动加载的类,仅供参考
- 闲着没事做个网上调查
- 闲着没事,弄两个面试题答案
- 闲着没事。注册了……
- 闲着没事写了个 双色球生成
- 闲着没事,写了个Java计算器
- 闲着没事,学点CSS吧
- Java并发编程:Lock(转载)
- linux学习路线
- HttpClient使用详解
- IncrediBuild5.0安装教程+破解教程+百度云分享
- 自適應閾值(threshold、CV_THRESH_OTSU
- 闲着没事 一个简单的轮播图实现
- HTTP协议详解
- 统计学习方法感知机的实现
- 内边距和外边距
- 图片预处理之PCA(UFLDL Tutorial)
- 【Mysql】Mysql 各个版本区别
- socket模拟http请求
- 简单创建redis集群
- 拜读jquery源码(一)