Android--多頁面管理控件之ViewFlipper實現子界面的自動切換

ViewPager較多應用於手勢滑動View 的切換,而ViewFlipper可用於子界面的自動切換,只需設置切換時間和動畫效果即可實現自動循環播放的功能。

一、爲ViewFlipper加入View

(1)靜態導入:在layout佈局文件中直接導入(寫死了,一般情況下不推薦使用)

<ViewFlipper
android:id="...">
<ImageView
  android:scaleType="matrix"
  .../>
<ImageView
  android:scaleType="matrix"
  .../>
<ImageView
  android:scaleType="matrix"
  .../>
</ViewFlipper>


(2)動態導入:addView()方法

<span style="font-size:18px;">flipper=(ViewFlipper)findViewById(R.id.flipper);
flipper.addView(getImageView(R.drawable.pic1));
flipper.addView(getImageView(R.drawable.pic2));
flipper.addView(getImageView(R.drawable.pic3));</span>

<pre name="code" class="java">private ImageView getImageView(int resId)
{
   ImageView image=new ImageView(this);
   image.setBackgroundResource(resId);//鋪滿整個屏幕
 //image.setImageResource(resId);//會以圖片大小展示
   return image;
}



ViewFlipper常用方法

setInAnimation:設置View進入屏幕時候使用的動畫  //動畫的xml文件位於res/anim下

setOutAnimation:設置View退出屏幕時候使用的動畫

showNext:調用該函數來顯示ViewFlipper裏面的下一個View

showPrevious:調用該函數來顯示ViewFlipper裏面的上一個View。

setFlipInterval:設置View之間切換的時間間隔

startFlipping:使用上面設置的時間間隔來開始切換所有的View,切換會循環進行

stopFlipping:停止View切換


二、支持手勢滑動的ViewFlipper

在MainActivity.java中重寫public boolean onTouchEvent(MotionEvent event)函數

public boolean onTouchEvent(MotionEvent event)
{
  switch(event.getAction())
  {
     case MotionEvent.ACTION_DOWN:
     {
      startX=event.getX();
      break;
     }
     case MotionEvent.ACTION_MOVE:
     {
      if(startX-event.getX()>100)//向左滑動大於100像素
      {
          //flipper.setInAmimation
          //flipper.setOutAnimation
          //flipper.showNext()
      }
      //event.getX() ;獲取手指座標
      break;
     }
     case MotionEvent.ACTION_UP:
     {
      break;
     }
  }
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章