zoukankan      html  css  js  c++  java
  • 指令汇B新闻客户端开发(四) 自动轮播条

        在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些,

    我们定义一个Handler:

    private Handler mHandler;




    定时器的代码如下:

    // 自动轮播条显示
    			if (mHandler == null) {
    				mHandler = new Handler() {
    					public void handleMessage(android.os.Message msg) {
    						int currentItem = mViewPager.getCurrentItem();
    
    						if (currentItem < mTopNewsList.size() - 1) {
    							currentItem++;
    						} else {
    							currentItem = 0;
    						}
    
    						mViewPager.setCurrentItem(currentItem);// 切换到下一个页面
    						mHandler.sendEmptyMessageDelayed(0, 3000);// 继续延时3秒发消息,
    																	// 形成循环
    					};
    				};
    
    				mHandler.sendEmptyMessageDelayed(0, 3000);// 延时3秒后发消息
    			}
    

    轮播条的触摸监听:

    class TopNewsTouchListener implements OnTouchListener {
    
    		@Override
    		public boolean onTouch(View v, MotionEvent event) {
    			switch (event.getAction()) {
    			case MotionEvent.ACTION_DOWN:
    			//	System.out.println("按下");
    				mHandler.removeCallbacksAndMessages(null);// 删除Handler中的所有消息
    				// mHandler.postDelayed(new Runnable() {
    				//
    				// @Override
    				// public void run() {
    				//
    				// }
    				// }, 3000);
    				break;
    			case MotionEvent.ACTION_CANCEL:
    				System.out.println("事件取消");
    				mHandler.sendEmptyMessageDelayed(0, 3000);
    				break;
    			case MotionEvent.ACTION_UP:
    				System.out.println("抬起");
    				mHandler.sendEmptyMessageDelayed(0, 3000);
    				break;
    
    			default:
    				break;
    			}
    
    			return true;
    		}
    
    	}


    // 表示事件是否拦截, 返回false表示不拦截, 可以让嵌套在内部的viewpager相应左右划的事件
    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
    return false;
    }


  • 相关阅读:
    如何将一个类改造为线程安全
    50行代码实现缓存,JAVA内存模型原理
    Qt 解压/压缩文件
    QT学习笔记—1
    在http编程的门口飞牛网自动下单,查单
    QList 排序
    Qt 打开指定的文件
    spoj 375 query on a tree 题解
    uva 11388 GCD LCM题解
    uva 1476 Error Curves 题解
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314912.html
Copyright © 2011-2022 走看看