日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android攻城狮ViewFlipper

發布時間:2024/1/8 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android攻城狮ViewFlipper 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用ViewFlipper實現屏幕切換動畫效果。 ViewFlipper和ViewPager一樣,都是Android自帶的一個多頁面管理控件,不同的是ViewPager是手動切換頁面,而ViewFlipper可以實現子界面的自動切換。只需設置切換時間和切換的動畫效果,ViewFlipper里面的視圖就會自動循環播放。 ------------------------ 為ViewFlipper添加View (1)靜態導入:在layout布局文件中直接導入,不需要寫額外的Java代碼,缺點:直接寫死,非常不靈活,所以不推薦使用。 (2)動態導入:addView()方法: flipper=(ViewFlipper)findViewById(R.i.flipper); flipper.addView(getImageView(R.drawable.pic1)); flipper.addView(getImageView(R.drawable.pic2)); --------------------------------- ViewFlipper常用的方法:1)、SetInAnimation:設置View進入屏幕時候使用的動畫2)、setOutAnimation:設置View退出屏幕時候使用的動畫3)、showNext:調用該函數來顯示ViewFlipper里面的下一個View4)、showPrevious:調用該函數來顯示ViewFlipper里面的上一個View5)、setFilpInterval:設置View之間切換的時間間隔6)、startFlipping:使用上面設置的時間間隔來開始切換所有的View,切換會循環進行7)、stopFlipping:停止View切換

實現動畫效果的步驟 1. 創建文件夾anim,放置實現動畫效果的xml文件。在drawable中放置圖片資源。 2. 在 main.xml中放置<ViewFlipper> 3. 在MainActivity中創建 int數組,放置圖片id。 4. 初始化ViewFlipper,動態導入子View:for (int i=0;i<resId.length;i++){flipper.addView(getImageView(resId[i]));} 這里自定義了方法 private ImageView getImageView(int resId){ImageView image = new ImageView(this);//image.setImageResource(resId);//不采取此方法的原因:ImageView的寬高完全取決于圖片的寬高,不符合“全屏展示”的要求image.setBackgroundResource(resId);//background可以鋪滿整個屏幕return image;} 5. 設置動畫效果 //設置切換的動畫效果flipper.setInAnimation(this,R.anim.left_in);//Animation:動畫。這里說是頁面進入的動畫(InAnimation)采用從左進入。flipper.setOutAnimation(this,R.anim.left_out);flipper.setFlipInterval(3000);//切換的時間間隔,單位毫秒flipper.startFlipping();//開啟動畫
1 //手機滑動-實現自動播放 2 public class MainActivity extends Activity { 3 private ViewFlipper flipper; 4 //資源圖片 5 private int[] resId = { R.drawable.a, R.drawable.b, R.drawable.c, 6 R.drawable.d }; 7 private float startX;//手勢滑動時,手指落下的起始坐標 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.main); 13 flipper = (ViewFlipper) findViewById(R.id.fliper); 14 // 動態導入的方式為ViewFlipper加載子view 15 for (int i = 0; i < resId.length; i++) { 16 flipper.addView(getImageView(resId[i])); 17 } 18 19 20 // 方式一:為ViewFlippe添加動畫效果實現自動切換圖片 21 22 // flipper.setInAnimation(this, R.anim.abc_slide_in_bottom); 23 // flipper.setOutAnimation(this, R.anim.abc_slide_out_bottom); 24 // 25 // flipper.setFlipInterval(3000);// 3秒切換 為ViewFlippe視圖切換的時間間隔 26 // flipper.startFlipping();// 開始播放 27 28 } 29 30 //方式二:支持手勢滑動的ViewFlipper 31 //監控手勢滑動事件的處理 32 @Override 33 public boolean onTouchEvent(MotionEvent event) { 34 // TODO Auto-generated method stub 35 switch (event.getAction()) { 36 // 手指落下 37 case MotionEvent.ACTION_DOWN: { 38 startX = event.getX();//獲得橫向的起始坐標 39 break; 40 } 41 42 // 手指滑動 43 case MotionEvent.ACTION_MOVE: { 44 // 設置差值大于100,是為了過濾掉微小的滑動 45 if (event.getX() - startX > 50) { 46 // 向右滑動 看前一頁 47 flipper.setInAnimation(this, R.drawable.left_in); 48 flipper.setOutAnimation(this, R.drawable.left_out); 49 50 flipper.showPrevious();//顯示前一頁 51 52 } 53 if (startX - event.getX() > 50) { 54 // 向左滑動 看后一頁 55 flipper.setInAnimation(this, R.drawable.right_in); 56 flipper.setOutAnimation(this, R.drawable.right_out); 57 58 flipper.showNext();// 顯示后一頁 59 } 60 break; 61 } 62 // 手指離開 63 case MotionEvent.ACTION_UP: { 64 65 break; 66 } 67 68 } 69 return super.onTouchEvent(event); 70 } 71 72 public ImageView getImageView(int resId) { 73 74 ImageView image = new ImageView(this); 75 // image.setImageResource(resId); 圖片原來的寬高 76 image.setBackgroundResource(resId);// 鋪滿全屏的 77 return image; 78 79 } 80 81 }

?

?


轉載于:https://www.cnblogs.com/my334420/p/6714753.html

總結

以上是生活随笔為你收集整理的Android攻城狮ViewFlipper的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。