多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android:用ViewPager實現廣告欄

Android:用ViewPager實現廣告欄

來源:程序員人生   發布時間:2015-03-06 08:51:15 閱讀次數:4447次

現在常見的廣告欄效果,自動切換廣告,也可手動滑動切換。




我用ViewPager實現的,空話不多說,上代碼:


1、布局文件 layout_ad_pager.xml

<?xml version="1.0" encoding="utf⑻"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="160dp" android:baselineAligned="false" > <ImageView android:id="@+id/home_default_image" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:src="@drawable/home_log_default" android:visibility="gone" /> <android.support.v4.view.ViewPager android:id="@+id/adv_pager" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/img2" > </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/viewGroup" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="5dp" android:gravity="center" android:orientation="horizontal" > </LinearLayout> </FrameLayout>

2、主要代碼 AdPagerMainActivity.java

package app.adpager; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import android.support.v7.app.ActionBarActivity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.annotation.SuppressLint; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Parcelable; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.ImageView; import android.widget.LinearLayout; public class AdPagerMainActivity extends ActionBarActivity { private ImageView mDefaultImage = null; private ViewPager mImagePager = null; private ImageView[] mImageViews = null; private AtomicInteger what = new AtomicInteger(0); private boolean isContinue = true; private List<View> advPics; private Context mContext; private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.layout_ad_pager); init(); initView(); initViewPager(); } /** * 初始化數據 */ private void init() { mContext = this; advPics = new ArrayList<View>(); } /** * 初始化控件 */ private void initView() { // TODO Auto-generated method stub mDefaultImage = (ImageView) findViewById(R.id.home_default_image); mImagePager = (ViewPager) findViewById(R.id.adv_pager); } /** * void */ private void initViewPager() { // TODO Auto-generated method stub mDefaultImage.setVisibility(View.GONE); mImagePager.setVisibility(View.VISIBLE); ImageView img1 = new ImageView(mContext); img1.setBackgroundResource(R.drawable.img1); advPics.add(img1); ImageView img2 = new ImageView(mContext); img2.setBackgroundResource(R.drawable.img2); advPics.add(img2); ImageView img3 = new ImageView(mContext); img3.setBackgroundResource(R.drawable.img3); advPics.add(img3); ImageView img4 = new ImageView(mContext); img4.setBackgroundResource(R.drawable.img4); advPics.add(img4); // group是R.layou.mainview中的負責包裹小圓點的LinearLayout. ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup); mImageViews = new ImageView[advPics.size()]; LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(13, 13); layoutParams.setMargins(5, 0, 5, 1); for (int i = 0; i < advPics.size(); i++) { mImageView = new ImageView(this); mImageView.setLayoutParams(layoutParams); mImageViews[i] = mImageView; if (i == 0) { // 默許選中第1張圖片 mImageViews[i].setBackgroundResource(R.drawable.item_focus); } else { mImageViews[i].setBackgroundResource(R.drawable.item_unfocus); } group.addView(mImageViews[i]); } mImagePager.setAdapter(new AdvAdapter(advPics)); mImagePager.setOnPageChangeListener(new GuidePageChangeListener()); // 按下時不繼續定時滑動,彈起時繼續定時滑動 mImagePager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: isContinue = false; break; case MotionEvent.ACTION_UP: isContinue = true; break; default: isContinue = true; break; } return false; } }); // 定時滑動線程 new Thread(new Runnable() { @Override public void run() { while (true) { if (isContinue) { viewHandler.sendEmptyMessage(what.get()); whatOption(); } } } }).start(); } /** * 操作圓點輪換變背景 */ private void whatOption() { what.incrementAndGet(); if (what.get() > mImageViews.length - 1) { what.getAndAdd(-mImageViews.length); } try { if (what.get() == 1) { Thread.sleep(3000); } else { Thread.sleep(2000); } } catch (InterruptedException e) { } } /** * 處理定時切換廣告欄圖片的句柄 */ @SuppressLint("HandlerLeak") private final Handler viewHandler = new Handler() { @Override public void handleMessage(Message msg) { mImagePager.setCurrentItem(msg.what); super.handleMessage(msg); } }; /** 指引頁面改監聽器 */ private final class GuidePageChangeListener implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { arg0 = arg0 % advPics.size(); for (int i = 0; i < mImageViews.length; i++) { mImageViews[arg0].setBackgroundResource(R.drawable.item_focus); if (arg0 != i) { mImageViews[i].setBackgroundResource(R.drawable.item_unfocus); } } what.set(arg0); } } /** * @Description: 廣告欄PaperView 圖片適配器 */ private final class AdvAdapter extends PagerAdapter { private List<View> views = null; public AdvAdapter(List<View> views) { this.views = views; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(views.get(arg1)); } @Override public void finishUpdate(View arg0) { } @Override public int getCount() { return views.size(); } @Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(views.get(arg1), 0); return views.get(arg1); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } } }

圖片資源:

 








生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 黑人群姣中国妞在线观看 | 新午夜影院| 中文字幕精品一区二区精品 | 国产精品嫩草影院在线看 | 伊人久综合| 91精品国产91热久久p | 性欧美videofree另类hd | 日本一级黄色毛片 | 国产激情一区二区三区在线观看 | 亚洲伊人久久大香线焦 | 日本网站免费 | 亚洲第一永久在线观看 | 久久大香伊人中文字幕 | 国产成人美女福利在线观看 | 在线xxx| 天堂中文在线乱码 | 91真人毛片一级在线播放 | 可以看黄的网址 | 性生交大片免费一级 | 无码日韩精品一区二区免费 | 福利视频美女国产精品 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片欧美 | 性欧美videofree另类 | 日韩一级欧美一级 | 国产观看精品一区二区三区 | 亚洲国产精品第一区二区三区 | 久久综合中文字幕一区二区三区 | 最近最新中文字幕免费大全 | 最近最新高清中文字幕 | 亚洲产在线精品第一站不卡 | 91精品一区二区 | 91在线精品亚洲一区二区 | 91欧美激情一区二区三区成人 | 最新中文| 午夜视频网 | 不卡一级aaa全黄毛片 | 91亚洲成人 | 亚洲国产毛片 | 动漫美女口工h福利动画网站 | 性短视频在线观看免费不卡流畅 | 日韩在线高清视频 |