国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Viewpager實現輪播廣告圖

2019-10-22 18:10:47
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android Viewpager輪播廣告圖的具體代碼,供大家參考,具體內容如下

<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"  tools:context="${relativePackage}.${activityClass}" > <android.support.v4.view.ViewPager   android:id="@+id/viewpager_main"   android:layout_width="match_parent"   android:layout_height="180dp"   ></android.support.v4.view.ViewPager><LinearLayout   android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="vertical"  android:layout_alignBottom="@id/viewpager_main"  android:background="#44000000"  >  <TextView     android:id="@+id/text_main_tatle"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:padding="3dp"    android:gravity="center_horizontal"    android:text="廣告標題"    android:textColor="#fff"    />  <LinearLayout    android:id="@+id/ll_main_point_group"     android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="horizontal"    android:layout_gravity="center_horizontal"    ></LinearLayout>    </LinearLayout></RelativeLayout>

主代碼寫

package com.example.viewpager_text2;import java.util.ArrayList;import android.R.integer;import android.annotation.SuppressLint;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {  ViewPager viewPager;  TextView text_main_tatle;  LinearLayout ll_main_point_group;  ArrayList <ImageView>imageviews;  //圖片資源  int [] imageids={    R.drawable.a,    R.drawable.b,    R.drawable.c,    R.drawable.d,    R.drawable.e,  };  //圖片的標題集合  String [] imagetion={    "有型有范","周末放假","家電買一送一","預約迎新機","京東火鍋節"   };  int preposition=0;//設置高亮的位置  Handler handler=new Handler(){    public void handleMessage(android.os.Message msg) {      int item=viewPager.getCurrentItem()+1;      viewPager.setCurrentItem(item);      //延遲發消息      handler.sendEmptyMessageDelayed(0,3000);    };  };  boolean isdragging=false;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //加載布局初始化    viewPager=(ViewPager) findViewById(R.id.viewpager_main);    text_main_tatle=(TextView) findViewById(R.id.text_main_tatle);    ll_main_point_group=(LinearLayout) findViewById(R.id.ll_main_point_group);    //   listview 的使用//   1,在布局中文件定義viewpager//   2,在代碼中實例化Viewpager//   3,準備數據    imageviews=new ArrayList<ImageView>();    for(int i=0;i<imageids.length;i++){      ImageView imageview=new ImageView(this);      imageview.setBackgroundResource(imageids[i]);      //添加到集合中      imageviews.add(imageview);      //添加小圓點      ImageView imageview1=new ImageView(this);      imageview1.setBackgroundResource(R.drawable.xuna);      LinearLayout.LayoutParams par=new LinearLayout.LayoutParams(8,8);      if(i==0){        imageview1.setEnabled(true);//顯示紅色              }else{        imageview1.setEnabled(false);//顯示灰色        par.leftMargin=8;      }      ll_main_point_group.addView(imageview1);    }            //   4,設置適配器(pageradapter)-Item布局-綁定數據    viewPager.setAdapter(new Mypager());    viewPager.setOnPageChangeListener(new myon());    //設置中間位置,要保證是imageview的整數倍數    int item=Integer.MAX_VALUE/2-        Integer.MAX_VALUE/2 % imageviews.size();    viewPager.setCurrentItem(item);    text_main_tatle.setText(imagetion[preposition]);    //延遲發消息    handler.sendEmptyMessageDelayed(0,3000);              }  class myon implements OnPageChangeListener {//當前頁面滾動變化的時候會回調此方法//   靜止-->滑動 或 滑動-->靜止 或 靜止-->拖拽    @Override    public void onPageScrollStateChanged(int arg0) {      // TODO Auto-generated method stub      if(arg0==ViewPager.SCROLL_STATE_DRAGGING){//拖拽        isdragging=true;              }else if(arg0==ViewPager.SCROLL_STATE_SETTLING){//滾動              }else if(arg0==ViewPager.SCROLL_STATE_IDLE&& isdragging){//靜止        isdragging=false;        handler.removeCallbacksAndMessages(null);        handler.sendEmptyMessageDelayed(0, 3000);              }    }    //   當前頁面滾動的時候回調此方法//   arg0 當期頁面的位置//   arg1滑動頁面的百分比//   arg2 在屏幕上滑動的像素    @Override    public void onPageScrolled(int arg0, float arg1, int arg2) {      // TODO Auto-generated method stub          }//當某個界面被選中時的回調方法//   arg0本選中頁面的位置    @Override    public void onPageSelected(int arg0) {      // TODO Auto-generated method stub      int realpostion=arg0%imageviews.size();      //設置對應頁面的文本信息      text_main_tatle.setText(imagetion[realpostion]);      //壩上一個高亮的設置成灰色      ll_main_point_group.getChildAt(preposition)      .setEnabled(false);      //當前設置成紅色    ll_main_point_group.getChildAt(realpostion)    .setEnabled(true);    preposition=realpostion;    }      }  class Mypager extends PagerAdapter{//得到圖片的總數        @Override    public int getCount() {      // TODO Auto-generated method stub//     return imageviews.size();      return Integer.MAX_VALUE;//int類型的最大值    }    //相當于getView的方法    //container Viewpager自身    //position 當前實例化頁面的位置(下標)    @Override    public Object instantiateItem(ViewGroup container, int position) {      int realPostion=position% imageviews.size();      // TODO Auto-generated method stub      ImageView imageview = imageviews.get(realPostion);      container.addView(imageview);//添加到Viewpager中      imageview.setOnTouchListener(new OnTouchListener() {                  @Override        public boolean onTouch(View v, MotionEvent event) {          // TODO Auto-generated method stub          switch (event.getAction()) {          case MotionEvent.ACTION_DOWN://手指按下時的操作            handler.removeCallbacksAndMessages(null);            break;          case MotionEvent.ACTION_MOVE://手指移動時的操作            break;          case MotionEvent.ACTION_CANCEL://事件取消            handler.removeCallbacksAndMessages(null);            handler.sendEmptyMessageDelayed(0, 3000);            break;          case MotionEvent.ACTION_UP://手指抬起時的操作            handler.removeCallbacksAndMessages(null);            handler.sendEmptyMessageDelayed(0, 3000);            break;          }          return false;        }      });      imageview.setTag(realPostion);      imageview.setOnClickListener(new OnClickListener() {                @SuppressLint("ShowToast")        @Override        public void onClick(View v) {          // TODO Auto-generated method stub          int position = (Integer) v.getTag();          String text=imagetion[position];          Toast.makeText(MainActivity.this, text, 0).show();        }      });      return imageview;    }      //比較View和Object是否是同一個實例    //arg0 就是頁面    //arg1是instantiateItem返回的結果    @Override     public boolean isViewFromObject(View arg0, Object arg1) {      // TODO Auto-generated method stub      return arg0==arg1;          }    //釋放資源//   container就是Viewpager//   position 要釋放的位置//   object要釋放的頁面    @Override     public void destroyItem(ViewGroup container, int position, Object object) {      container.removeView((View) object);    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河曲县| 阳高县| 卢湾区| 左贡县| 南华县| 吴桥县| 中方县| 临朐县| 沧州市| 彭水| 呼图壁县| 玛多县| 朝阳县| 山西省| 太仆寺旗| 平遥县| 黄梅县| 杭锦后旗| 海口市| 甘孜| 阿尔山市| 绥棱县| 阜南县| 万安县| 新田县| 大渡口区| 库伦旗| 凤城市| 大荔县| 南川市| 吉水县| 仁布县| 泸溪县| 石门县| 镶黄旗| 神池县| 香格里拉县| 咸宁市| 同江市| 万全县| 铜川市|