在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → ViewPager广告轮播

ViewPager广告轮播

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:1.16M
  • 下载次数:38
  • 浏览次数:711
  • 发布时间:2015-12-16
  • 实例类别:Android平台开发
  • 发 布 人:yangfang
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 轮播 wp 广告

实例介绍

【实例简介】MainActivity.class

package com.example.viewpagerview;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
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;
import android.widget.TextView;

/**
 * 首页图片轮播
 * 作者:yangfang
 * @author Administrator 
 */
public class FinishActivity extends Activity {
private ViewPager viewPager;
private TextView text;
private LinearLayout layout;
/**
* 用于小圆点的图片
*/
private List<ImageView> dotlist;
/**
* 用于轮播的图片
*/
private List<ImageView> imglist;
private int currentItem = 0;// 当前页面
private boolean isAutoPlay = true;// 是否自动轮播
private ScheduledExecutorService scheduledExecutorService;
private String title[] = { "第一张图片", "第二张图片", "第三张图片", "第四张图片", "第五张图片" };
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 100) {
viewPager.setCurrentItem(currentItem);
}
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_finish);
viewPager = (ViewPager) findViewById(R.id.viewpager);
text = (TextView) findViewById(R.id.text);
layout = (LinearLayout) findViewById(R.id.dian);
layout.removeAllViews();
initView();
if (isAutoPlay) {
startPlay();
}
}

/**
* 开始轮播图切换
*/
private void startPlay() {
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.scheduleAtFixedRate(new SlideShowTask(), 1, 5,
TimeUnit.SECONDS);
// 根据他的参数说明,第一个参数是执行的任务,第二个参数是第一次执行的间隔,第三个参数是执行任务的周期;
}

/**
* 执行轮播图切换任务

*/
class SlideShowTask implements Runnable {

@Override
public void run() {

synchronized (viewPager) {
currentItem = (currentItem 1) % imglist.size();
mHandler.sendEmptyMessage(100);
}
}
}

private void initView() {
dotlist = new ArrayList<ImageView>();
imglist = new ArrayList<ImageView>();
if (imglist.size() == dotlist.size()) {

for (int i = 0; i < 5; i ) {
ImageView dotView = new ImageView(FinishActivity.this);
LayoutParams params = new LayoutParams(20, 20);
params.leftMargin = 20;// 设置小圆点的外边距
// params.rightMargin = 6;
/*
* params.height = 20;// 设置小圆点的大小 params.width = 20;
*/
dotView.setLayoutParams(params);
// dotView.setEnabled(false);

dotView.setBackgroundResource(R.drawable.pointer_selector);
layout.addView(dotView, params);
dotlist.add(dotView);// 动态添加四个点
text.setText(title[0]);
}
}
ImageView img1 = new ImageView(this);
ImageView img2 = new ImageView(this);
ImageView img3 = new ImageView(this);
ImageView img4 = new ImageView(this);
ImageView img5 = new ImageView(this);
img1.setBackgroundResource(R.drawable.b1);
img2.setBackgroundResource(R.drawable.b2);
img3.setBackgroundResource(R.drawable.b3);
img4.setBackgroundResource(R.drawable.b4);
img5.setBackgroundResource(R.drawable.b5);
imglist.add(img1);
imglist.add(img2);
imglist.add(img3);
imglist.add(img4);
imglist.add(img5);
// viewPager.getChildAt(0).setEnabled(true);
FinishAdapter adapter = new FinishAdapter(this, imglist);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
/**
* ViewPager的监听器 当ViewPager中页面的状态发生改变时调用

*/
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
boolean isAutoPlay = false;

@Override
public void onPageSelected(int arg0) {
// 这里面动态改变小圆点的被背景,来实现效果
currentItem = arg0;
for (int i = 0; i < dotlist.size(); i ) {
if (i == arg0) {
dotlist.get(arg0).setBackgroundResource(
R.drawable.pointer_focus);
text.setText(title[arg0]);
} else {
dotlist.get(i).setBackgroundResource(
R.drawable.pointer_disable);
}
}
}

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

}

@Override
public void onPageScrollStateChanged(int arg0) {
switch (arg0) {
case 1:// 手势滑动空闲中
isAutoPlay = false;
System.out.println("手势滑动空闲中");
break;

case 2:// 界面切换
isAutoPlay = true;
System.out.println("界面切换中");
break;
case 0:// 切换结束,加载完毕
// 当前为最后一张,此时从右向左滑,则切换到第一张
if (viewPager.getCurrentItem() == viewPager.getAdapter()
.getCount() - 1 && !isAutoPlay) {
viewPager.setCurrentItem(0);
System.out.println("滑动到最后一张");
}
// // 当前为第一张,此时从左向右滑,则切换到最后一张
else if (viewPager.getCurrentItem() == 0 && !isAutoPlay) {
viewPager.setCurrentItem(viewPager.getAdapter()
.getCount() - 1);
System.out.println("滑动到第一张");
}
break;
case 3:
break;
}

}
});

}
}


Adapter.class:

package com.example.viewpagerview;

import java.util.List;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ImageView;

public class FinishAdapter extends PagerAdapter {
private Context context;
private List<ImageView> mList;

public FinishAdapter(Context context, List<ImageView> mList) {
this.context = context;
this.mList = mList;
}

/**
* 集合的数量
*/
@Override
public int getCount() {

return mList.size();
}

/**
* 返回的参数
*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;
}

/**
* 生成视图
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView img = mList.get(position);
ViewParent vp = img.getParent();
if (vp != null) {
ViewPager parent = (ViewPager) vp;
parent.removeView(img);
}
container.addView(mList.get(position));
return mList.get(position);
}

/**
* 销毁视图 在这里super.destroyItem(container, position,
* object);这句不需要,但是可以加上:container.removeView(mList.get(position));
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {

// super.destroyItem(container, position, object);
// container.removeView(mList.get(position));
}
}



【实例截图】

【核心代码】

布局文件:

<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="match_parent" >
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:id="@ id/layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="60dp"
        android:background="#20000000"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@ id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="6dp"
            android:layout_marginTop="6dp"
            android:text="这是第一个页面"
            android:textColor="#ffffff" />

        <LinearLayout
            android:id="@ id/dian"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="6dp"
            android:orientation="horizontal"
            android:padding="10dp" >
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

标签: 轮播 wp 广告

实例下载地址

ViewPager广告轮播

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警