android viewflipper實現左右滑動切換顯示圖片
本文實例為大傢分享瞭android viewflipper實現左右滑動切換顯示圖片的具體代碼,供大傢參考,具體內容如下
1.首先定義四個動畫文件,表示當view切換的時候的顯示效果
in_leftright.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
in_rightleft.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="100%p" android:toXDelta="0" /> </set>
out_leftright.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="100%p" /> </set>
out_rightleft.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
2.在main.xml中添加ViewFlipper控件,裡面放三個LinearLayout,表示3個view
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- first page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a001" /> </LinearLayout> <!-- second page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a002" /> </LinearLayout> <!-- third page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a003" /> </LinearLayout> </ViewFlipper> </LinearLayout>
3.最後在activity裡的onTouchEvent事件中,來判斷是往哪個方向移動
package org.example.viewflipper; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.ViewFlipper; public class ViewFlipperActivity extends Activity { private ViewFlipper viewFlipper = null; float startX; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // init widget viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getX(); break; case MotionEvent.ACTION_UP: if (event.getX() > startX) {// flip to right viewFlipper.setInAnimation(this, R.anim.in_leftright); viewFlipper.setOutAnimation(this, R.anim.out_leftright); viewFlipper.showNext(); } else {// flip to left viewFlipper.setInAnimation(this, R.anim.in_rightleft); viewFlipper.setOutAnimation(this, R.anim.out_rightleft); viewFlipper.showPrevious(); } } return super.onTouchEvent(event); } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Android移動應用開發指南之六種佈局詳解
- Android studio六大基本佈局詳解
- Android使用kotlin實現多行文本上下滾動播放
- Android實現ViewFlipper圖片動畫滑動
- android 實現側邊彈窗特效代碼