您好,登錄后才能下訂單哦!
Android ViewFlipper的詳解
前言:
View Flipper,是ViewAnimator的子類,而ViewAnimator又是繼承自FrameLayout,而FrameLayout就是平時基本上只顯示一個子視圖的布局,由于FrameLayout下不好確定子視圖的位置,所以很多情況下子視圖之前存在相互遮擋,這樣就造成了很多時候我們基本上只要求FrameLayout顯示一個子視圖,然后通過某些控制來實現切換。正好,ViewFlipper幫我們實現了這個工作,我們需要做的就是,選擇恰當的時機調用其恰當的方法即可
類結構
方法 | 意義 |
---|---|
startFlipping | 開始瀏覽 |
stopFlipping | 停止瀏覽 |
setFlipInterval | 設置View之間切換的時間間隔 |
getAccessibilityClassName | 獲取類名稱 |
isFlipping | 判斷是否正在瀏覽 |
setAutoStart | 設置是否自動開始瀏覽 |
isAutoStart | 判斷是否為自動開始瀏覽 |
基本使用
1. 動畫定義
scalein.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:duration="1000" android:fromXScale="0.2" android:fromYScale="0.2" android:toYScale="1" android:toXScale="1" android:pivotX="50%" android:pivotY="50%" > </scale> </set>
scaleout.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:duration="1000" android:fromXScale="1" android:fromYScale="1" android:toYScale="0.2" android:toXScale="0.2" android:pivotX="50%" android:pivotY="50%"> </scale> </set>
2. 布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="jzfp.gs.com.animationdemo.MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary"></android.support.v7.widget.Toolbar> <!--漸入動畫 和 漸出動畫定義--> <ViewFlipper android:id="@+id/vf" android:layout_width="match_parent" android:layout_height="match_parent" android:inAnimation="@anim/scalein" android:outAnimation="@anim/scaleout"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/one" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/two" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/three" /> </ViewFlipper> </LinearLayout>
3. 左右滑動切換
public class MainActivity extends AppCompatActivity { private ViewFlipper viewFlipper = null; float PosX = 0, CurrentX = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setNavigationIcon(R.drawable.left); setSupportActionBar(toolbar);//設置ActionBar viewFlipper = (ViewFlipper) findViewById(R.id.vf); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: PosX = event.getX(); break; case MotionEvent.ACTION_MOVE: CurrentX = event.getX(); break; case MotionEvent.ACTION_UP: if (CurrentX - PosX > 25.0) {//向右滑動切換到上一頁 viewFlipper.showPrevious(); } else if (CurrentX - PosX < -25.0) {//向左滑動,切換到下一頁 viewFlipper.showNext(); } } return true; } }
實際效果
以上就是Android ViewFlipper的使用方法,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。