动态圆点轮播图
来源:互联网 发布:华沙 知乎 编辑:程序博客网 时间:2024/05/17 07:13
布局
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="@color/colorPrimary"/> <stroke android:width="1dp"/></shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="@color/colorAccent"/> <stroke android:width="1dp"/></shape>
代码
private ViewPager vp; private LinearLayout ll; //创建图片集合 private List<String> imageList; private List<View> viewList = new ArrayList<>(); private int above = 0; private int c = 0; //定义handler private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { int what = msg.what; vp.setCurrentItem(what); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a); //查找控件 vp = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.ll); //获取图片路径 imageList = Arrays.asList("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3170338295,3308067375&fm=117&gp=0.jpg", "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3641902857,2040981264&fm=26&gp=0.jpg", "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2194630571,1526007154&fm=26&gp=0.jpg", "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2665764299,1613523446&fm=26&gp=0.jpg"); //创建图片适配器 MyPagerAdapter pagerAdapter = new MyPagerAdapter(MainActivity.this,imageList); //关联数据 vp.setAdapter(pagerAdapter); //调用方法 init(); //开启线程 new Thread(){ @Override public void run() { while (true){ try { //每隔3秒图片自动播放 sleep(3000); c++; handler.sendEmptyMessage(c); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } private void init() { for (int i=0;i<imageList.size();i++){ //定义一个view View view = new View(this); //圆点的大小 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(50,50); //圆点的左右位置 params.rightMargin = 10; params.leftMargin = 10; view.setLayoutParams(params); if (i == 0){ //选中圆点 view.setBackgroundResource(R.drawable.shape_select); }else{ //未选中圆点 view.setBackgroundResource(R.drawable.shape_normal); } ll.addView(view); viewList.add(view); } //监听 vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { viewList.get(position % imageList.size()).setBackgroundResource(R.drawable.shape_select); viewList.get(above % imageList.size()).setBackgroundResource(R.drawable.shape_normal); above = position; } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); }
阅读全文
0 0
- 动态圆点轮播图
- 动态
- 动态
- 动态
- 动态磁盘&动态卷
- 动态sql,动态游标
- 动态加载动态库
- 动态加载动态库
- 动态规划!!!动态规划!!!
- 动态内存/动态数组
- 动态类型和动态绑定,动态载入
- 动态生成java、动态编译、动态加载
- 动态语言
- 动态装载
- 近期动态
- 动态方法
- 近日动态!
- 动态代理
- 概率与数学期望
- 字体扩大手机旋转
- 关于Java里面File类创建txt文件重复???
- 坚持#第206天~努力了解慕课网OpenStack中
- DEVICE_ATTR和SENSOR_DEVICE_ATTR
- 动态圆点轮播图
- 自定义View画圆
- 点击圆随机改变颜色
- ElasticSearch学习10月8日
- 收藏的文章,随时更新
- 嵌入式Linux学习笔记(2)——vi编辑器
- python3.6 mysql django mysql-python
- HDU 1081 求最大子矩形 dp
- POJ 3709 Round Numbers 数位dp