zoukankan      html  css  js  c++  java
  • 使用ViewPager实现广告滑动效果

    效果图:

                         

    功能描写叙述:

    1、拖动能够切换view

    2、点击dot能够跳转到对应view

    3、每隔三秒自己主动切换view


    实现:

    1、先写布局main.xml文件,定义一个存放图片的ViewPager,和存放dot的LinearLayout  

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


       <LinearLayout  
                android:id="@+id/viewGroup"    
                android:layout_width="fill_parent"  
                android:layout_height="wrap_content"             
                android:gravity="center"  
                android:layout_marginTop="405px"  
                android:orientation="horizontal" >  
            </LinearLayout> 

    2、主要实现代码:

    a、初始化view视图,设置viewpager的适配器
    private void initViewPager() {
    // TODO Auto-generated method stub
    items = new ArrayList<View>();

    for(int i=0; i<4; i++){
    image = new ImageView(this);
    image.setBackgroundResource(ads[i]);
    items.add(image);
    }

    viewpager = (ViewPager)findViewById(R.id.viewpager);
    viewpager.setAdapter(adapter);
    viewpager.setOnPageChangeListener(this);
    }

    b、初始化dot视图
    private void initDot() {
    // TODO Auto-generated method stub
    viewGroup = (LinearLayout)findViewById(R.id.viewGroup);
    dots = new ImageView[items.size()];

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(40, 40);
    layoutParams.setMargins(4, 3, 4, 3);

    for(int i=0 ; i<items.size(); i++){
    dot = new ImageView(this);

    dot.setLayoutParams(layoutParams);  
    dots[i] = dot;
    dots[i].setTag(i);
    dots[i].setOnClickListener(onClick);

    if (i == 0) {  
                   dots[i]  
                           .setBackgroundResource(R.drawable.dotc);  
               } else {  
                   dots[i]  
                           .setBackgroundResource(R.drawable.dotn);  
               }  
               

    viewGroup.addView(dots[i]);  
    }
    }

    c、实现dot点击响应功能
    OnClickListener onClick = new OnClickListener(){

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    int position = (Integer)v.getTag();  
           setCurView(position);  
           setCurDot(position);  
    }

    };

    d、自己主动切换视图

    private void atomicOption() {  
    //获取当前的值,并自增
            atomicInteger.incrementAndGet(); 
            
            if (atomicInteger.get() > items.size() - 1) {  
            atomicInteger.getAndAdd(-4);  
            }  
                   
            try {          
                Thread.sleep(3000);  
            } catch (InterruptedException e) {  
                  
            }  
        } 


    源代码下载路径:http://download.csdn.net/detail/jmc601/7275991

  • 相关阅读:
    根据中国气象局提供的API接口实现天气查询
    小程序——云函数发送请求
    apifm-wxapi API工厂
    首次使用 linux 阿里云服务器,入门及使用
    Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)
    Android来电监听和去电监听
    Android 源码下载方法(Git 方式clone)
    HandlerThread 创建一个异步的后台线程
    Android Toast cancel和show 不踩中不会知道的坑
    PopupWindow 点击外部和返回键无法消失背后的真相(setBackgroundDrawable(Drawable background))
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7072940.html
Copyright © 2011-2022 走看看