首先我们介绍一下ViewFlipper.ViewFlipper是android的原生控件.
其中有一些属性值:
setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
showNext: 调用该函数来显示FrameLayout里面的下一个View。
showPrevious: 调用该函数来显示FrameLayout里面的上一个View。
isFlipping: 用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping: 停止View切换
使用方法:
activity:
public class ViewFippActivity extends AppCompatActivity {
ViewFlipper viewFlipper = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewfipp);
initView();
}
private void initView() {
viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper);
for(int i=0;i<3;i++){
View view = getLayoutInflater().inflate(R.layout.item_viewfipp,null);
viewFlipper.addView(view);
}
viewFlipper.setFlipInterval(1000);
viewFlipper.startFlipping();
}
}
activity_viewfipp.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<ViewFlipper
android:id="@+id/viewflipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:flipInterval="1000"
android:background="@drawable/shape_background_daf2ed_8"
android:inAnimation="@anim/bottom_in"
android:outAnimation="@anim/top_out"
android:persistentDrawingCache="animation">
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@null"
android:text="第一个" />
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/shape_background_d7b176_8"
android:text="第二个" />
</ViewFlipper>
</LinearLayout>
item_viewfipp.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="60dp"
android:background="@drawable/shape_gradient_ff5d79e8_ff39b8fa"
android:orientation="horizontal">
<ImageView
android:id="@+id/img"
android:layout_marginStart="8dp"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/image_home_bg1"/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="云数据库MongoDB版"
android:textSize="22sp"
android:layout_marginLeft="20dp"
android:layout_gravity="center"/>
</LinearLayout>
top_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="-60%p"
android:duration="500"/>
<alpha android:fromAlpha="1"
android:toAlpha="0"
android:duration="500"/>
</set>
bottom_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromYDelta="60%p"
android:toYDelta="0" />
<alpha android:fromAlpha="0"
android:toAlpha="1"
android:duration="1000"
/>
</set>
left_out.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%p"
android:duration="1000" />
</set>
right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1000"
android:fromXDelta="0%p"
android:toXDelta="-100%p" />
</set>
shape_background_d7b176_8.xml
<?xml version="1.0" encoding="utf-8"?><!--引导页:圆形图标-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#d7b176" />
<corners android:radius="8dp" />
</shape>
网友评论