viewpager+小圆点新版

本文介绍了一个使用Android支持库实现的自动轮播图功能,并详细展示了如何通过Handler定时切换图片及设置底部指示器小圆点来显示当前轮播状态。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    <LinearLayout
        android:id="@+id/ll_dots"
        android:layout_width="match_parent"
        android:gravity="center_horizontal"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/viewPager" >
    </LinearLayout>

</RelativeLayout>


第二部

package com.example.myrollview_8g;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends Activity {

    private LinearLayout ll_dots;
    private ViewPager viewPager;
    private String[] imageUrls = new String[] {
            "http://169.254.238.174:8080/ab.jpg",
            "http://169.254.238.174:8080/ae.jpg",
            "http://169.254.238.174:8080/af.jpg",
            "http://169.254.238.174:8080/ah.jpg" };
    private ArrayList<ImageView> dotsList;

    Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            if (msg.what == 0) {
                // 获取viewPager当前所在的页码索引值
                int currentItem = viewPager.getCurrentItem();
                currentItem++;
                viewPager.setCurrentItem(currentItem);
                handler.sendEmptyMessageDelayed(0, 2000);
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager) findViewById(R.id.viewPager);
        ll_dots = (LinearLayout) findViewById(R.id.ll_dots);
        viewPager.setAdapter(new MyPagerAdapter(this, imageUrls,handler));
        // 设置当前的一个条目值
        viewPager.setCurrentItem(imageUrls.length * 5000);
        initDots();
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                for (int i = 0; i < dotsList.size(); i++) {
                    if (i == position % imageUrls.length) {
                        dotsList.get(i).setImageResource(R.drawable.dots_focus);
                    } else {
                        dotsList.get(i)
                                .setImageResource(R.drawable.dots_normal);
                    }
                }

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {

            }
        });

        handler.sendEmptyMessageDelayed(0, 2000);
    }

    /**
     * 初始化小圆点
     */
    private void initDots() {
        dotsList = new ArrayList<ImageView>();
        dotsList.clear();
        ll_dots.removeAllViews();
        for (int i = 0; i < imageUrls.length; i++) {
            // 画出圆点
            ImageView imageView = new ImageView(this);
            //
            if (i == 0) {
                imageView.setImageResource(R.drawable.dots_focus);
            } else {
                imageView.setImageResource(R.drawable.dots_normal);
            }
            // 宽和高 dp 相对像素
            // 如果是真正开发,需要转成 px值 屏幕适配 dp---px
            LayoutParams params = new LayoutParams(20, 20);
            // 放到什么位置
            params.setMargins(5, 0, 5, 0);
            dotsList.add(imageView);
            ll_dots.addView(imageView, params);
        }
    }

}


源码下载地址: https://pan.quark.cn/s/a4b39357ea24 谷歌公司设计了一款无费用且具备开源特性的网络浏览器,名为Chrome,因其卓越的速度、稳定性和安全性而广受赞誉。该浏览器运用了前沿的Web渲染引擎Blink以及JavaScript引擎V8,旨在保障网页载入与脚本运行的卓越效能。为应对无网络环境下的Chrome安装需求,特别准备了离线安装包。此压缩文件内含32位与64位两种规格的Chrome浏览器离线安装方案,具体文件名分别为"chromedev_x64-v68.0.3423.2.exe"与"chromedev_x86-v68.0.3423.2.exe"。在文件命名中,"x64"标识64位版本,适用于64位操作系统平台,而"x86"则对应32位版本,适配32位操作系统。文件名中的"v68.0.3423.2"代表Chrome的一个特定版本号,各版本可能涵盖安全补丁、性能改进或新增功能。与32位Chrome相比,64位版本具备如下长处:能够处理更多内存容量,从而提升多任务作业能力;针对现代硬件的优化使其运行更为迅猛;64位版本更具备高级别的安全防护,能更周全地抵御恶意软件的侵袭。尽管如此,32位版本对于仍在使用32位操作系统的用户,或是在系统资源需求不高的场景下,依然适用。在部署Chrome浏览器时,用户需依据其个人计算机的操作系统平台,挑选匹配的版本进行安装。通过双击相应的.exe文件,安装流程将自动启动,一般包含接受使用许可、确定安装路径及构建桌面快捷方式等环节。若在安装阶段遭遇难题,可参照提示信息或联系技术支援获取协助,同时该压缩文件发布者亦表明欢迎用户以留言形式反映问题。Chrome浏览器的主要特质涵盖:直观的用户界面设计...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值