Android基础之首页广告轮播效果

1 我们经常打开一个App会看到有广告图片轮播的效果,首先上效果图

广告图片轮播

2 实现的过程

2.1 轮播页面他是一个ViewPager

2.2 然后我们使用RelativeLayout来把小圆点放置在图片上,然后滑动时动态修改小圆点的背景,就产生了滑动的效果

2.3 自动滑动的效果,我们可以利用ScheduledExecutorService这个类来实现,他可以周期性的执行任务,这样就可以自动滑动了

3 要点说明

3.1 public void onPageScrollStateChanged(int arg0) {}

通过网上查找发现当ViewPager页面滑动时,arg0有三种不同的参数
①当arg0 =1使表示手势滑动
②当arg0 =2时表示页面自动滑动
④当arg0 =3,表示滑动到最后一页

3.2 通过这些参数,我们就可以然手动滑动的时候关闭自动滑动功能

3.3 当滑动到最后一面时,把ViewPager当前项设置到第一页

3.4 在写这个功能的时候,把高分辨率的图片放在了自定义的mipmap文件夹下,这样如果图片一些,就会引发内存溢出异常,当图片一大,这样程序就会需要很多的内存来加载,这在android中是不行,所以我们应该把图片放在对应的drawable文件下,就可避免这种情况,系统应该在后台自动处理了

4 下面填出实现的源代码,在最后会有完整源码的下载链接

4.1 MainActivity

import android.app.ActionBar.LayoutParams;

public class MainActivity extends Activity {

    private LayoutInflater inflater;
    private ViewPager mviewPager;
    private LinearLayout dotLayout;//底部Layout布局

    private List<ImageView> dotViewList;//用于小圆点图片
    private List<ImageView> list;//用于存放轮播效果图片
    private int currentItem = 0;//当前页面
    boolean isAutoPlay = true;//是否自动轮播

    private ScheduledExecutorService scheduledExecutorService;//定时周期执行指定的任务

    private Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 100) {
                mviewPager.setCurrentItem(currentItem);
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        inflater = LayoutInflater.from(MainActivity.this);

        mviewPager
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值