android笔记之ViewFlipper的使用
来源:互联网 发布:会声会影x6软件下载 编辑:程序博客网 时间:2024/06/05 15:07
ViewPlipper可以用作幻灯片的播放或者是欢迎页面的切换等,当前ViewPager也可以,先来介绍ViewPlipper的循环播放效果:
1.ViewPlipper循环播放:
布局:(没咋可说的)
view_flipper_test.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="match_parent"> </ViewFlipper></LinearLayout>
主要代码:对于ViewFlipper这里我们使用代码动态添加View:
private ViewFlipper mViewFlipper; private int[] mIds = {R.mipmap.guid_01,R.mipmap.guid_02,R.mipmap.guid_03,R.mipmap.guid_04}; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_flipper_test); mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); for (int i = 0 ; i < mIds.length; i ++) { mViewFlipper.addView(getImageView(i)); }// 设置动画 mViewFlipper.setInAnimation(this,R.anim.slide_in_rigth); mViewFlipper.setOutAnimation(this,R.anim.slide_out_left);// 切换的时间间隔 mViewFlipper.setFlipInterval(2000); //开始切换 mViewFlipper.startFlipping(); }
这样就可播放了。
2.切换页面使用
布局还是上面的布局,下面看主要的实现代码:
ViewFlipperActivity.java
public class ViewFlipperActivity extends Activity implements GestureDetector.OnGestureListener { private ViewFlipper mViewFlipper; private int[] mIds = {R.mipmap.guid_01,R.mipmap.guid_02,R.mipmap.guid_03,R.mipmap.guid_04}; private int currentPosition = 0; private GestureDetector detector; //手势检测 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_flipper_test); detector = new GestureDetector(this,this); mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); for (int i = 0 ; i < mIds.length; i ++) { mViewFlipper.addView(getImageView(i)); } } @Override public boolean onTouchEvent(MotionEvent event) { return detector.onTouchEvent(event);//touch事件交给手势处理。 } private ImageView getImageView(int resourceId) { ImageView imageView = new ImageView(this); imageView.setBackgroundResource(mIds[resourceId]); return imageView; } @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if(e1.getX()-e2.getX()>120){ if (currentPosition >= mIds.length-1) return false; mViewFlipper.setInAnimation(this,R.anim.slide_in_rigth); mViewFlipper.setOutAnimation(this,R.anim.slide_out_left); mViewFlipper.showNext(); //向左滑动 currentPosition ++; return true; }else if(e1.getX()-e2.getY()<-120){ if (currentPosition <= 0) return false; mViewFlipper.setInAnimation(this,R.anim.slide_in_left); mViewFlipper.setOutAnimation(this,R.anim.slide_out_rigth); mViewFlipper.showPrevious();//向右滑动 currentPosition --; return true; } return false; }}
在这里我们使用了android缝扎un个好了的手势识别工具类,当然也可以自己在onTouchEvent方法自己写也可以(既然有工具类,为什么不用0.0)。
当然对于这里还有四个动画:
slide_in_left.xml 左边进入
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="400" /> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="400" /></set>
slide_out_left.xml 左边退出
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="400" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="400" /></set>
slide_in_rigth.xml 右边进入
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="400" /><alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="400" /></set>
slide_out_rigth.xml 右边退出
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="400" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="400" /></set>
上边这四个动画,主要是平移与透明动画,效果图就不上了,跟市面上主流的欢迎页面切换一样。
0 0
- android笔记之ViewFlipper的使用
- Android笔记(11)---ViewFlipper的使用
- Android之ViewFlipper的简单使用
- Android之ViewFlipper的简单使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- Android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- android ViewFlipper的使用
- Android ViewFlipper的使用
- PHP session 存储方式的详细介绍
- 关于网络的总结(二)
- Centos7 解决totem不能播放的问题
- DES加密算法的实现
- background:-webkit-gradient()背景渐变属性
- android笔记之ViewFlipper的使用
- Python学习笔记(三):变量和数据类型
- 基于TCP的通信为什么需要RETRY
- 归并--排序
- the climbing price of film faced plywood
- MongoDB之Java测试代码(DAO层)
- js keyup、keypress和keydown事件 详解
- Leetcode[120]-Triangle
- 易语言 MD5加密