ViewFlipper主要用在几个视图自动切换,
ViewPage用在滑动手势切换视图,并在视图添加很多功能。
ViewFragment在几个Fragment之间切换滑动,因为Fragment有自己的周期,比Viewpage更加好控制。
源代码如下,用 ViewFlipper实现图片的自动切换,并添加了动画效果。。
MainActivity代码:
package com.example.viewflipper; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.ViewFlipper; public class MainActivity extends AppCompatActivity { private ViewFlipper flipper; private int[]resId={ R.mipmap.pic1,R.mipmap.pic2,R.mipmap.pic3,R.mipmap.pic4 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); flipper = (ViewFlipper) findViewById(R.id.flipper); //动态导入方式为ViewFlipper加入子View for (int i = 0;i<resId.length;i++) { flipper.addView(getImageView(resId[i])); } //位ViewFlipper添加动画效果 flipper.setInAnimation(this,R.anim.left_in); flipper.setOutAnimation(this,R.anim.left_out); //为ViewFlipper设定视图切换时间间隔 flipper.setFlipInterval(3000); //开始播放 flipper.startFlipping(); } private ImageView getImageView(int resId){ ImageView image = new ImageView(this); //image.setImageResource(resId); image.setBackgroundResource(resId);//自动显示铺满整个屏幕的图片 return image; } }
activity_main的代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.viewflipper.MainActivity"> <ViewFlipper android:id="@+id/flipper" android:layout_width="match_parent" android:layout_height="match_parent"> </ViewFlipper> </RelativeLayout>
新建一个anim的文件夹,用于存放写的动画效果。
在anim里添加四个动画效果,
left_in:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="-100%p" android:toXDelta="0" /> <alpha android:fromAlpha="0.5" android:toAlpha="1" android:duration="2000" /> </set>
left_out
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="0" android:toXDelta="100%p" /> <alpha android:duration="2000" android:fromAlpha="0.5" android:toAlpha="1" /> </set>
right_in
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="100%p" android:toXDelta="0" /> <alpha android:duration="2000" android:fromAlpha="0.5" android:toAlpha="1" /> </set>right_out
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="0" android:toXDelta="-100%p" /> <alpha android:duration="2000" android:fromAlpha="0.5" android:toAlpha="1" /> </set>
这张图片命名为:pic1
pic2:
pic3:::::::::::::::
pic4::::