Android ViewFlipper 功能与用法

来源:互联网 发布:cfree软件下载 编辑:程序博客网 时间:2024/06/04 18:20

设置动画
.setInAnimation(this, android.R.anim.slide_in_left);.setOutAnimation(this, android.R.anim.slide_out_right);
.showPrevious(); //显示上一个View组件
.showNext(); //显示下一个View组件
.stopFlipping(); //暂停自动切换View
.startFlipping(); //开始自动切换View
.setFlipInterval(int ms);//设置切换周期单位毫秒,设为1000 = 1S

//通过LayoutInflater 返回R.layout.xxxx Layout Viewprivate View mAddLayoutView(int layout) {    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);    View view = inflater.inflate(layout, null);    return view;}
mViewFlipper.addView(mAddLayoutView(R.layout.viewflipper_page1));  //代码添加View;


package shortcut.song.com.myapplication;import android.content.Context;import android.icu.text.SimpleDateFormat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.Toast;import android.widget.ViewFlipper;import java.util.Date;public class ViewFlipperActivity extends AppCompatActivity {    ViewFlipper mViewFlipper;    RotateAnimation mRotateAnimation;    TranslateAnimation mTranslateAnimation;    ScaleAnimation mScaleAnimation;    AlphaAnimation mAlphaAnimation;    LayoutInflater mLayoutInflater;    Context     mContext;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);       setContentView(R.layout.activity_view_flipper);        mViewFlipper = (ViewFlipper)findViewById(R.id.viewflipper);        mViewFlipper.addView(mAddLayoutView(R.layout.viewflipper_page1));  //代码添加View;    }    //通过LayoutInflater 返回R.layout.xxxx Layout View    private View mAddLayoutView(int layout) {        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);        View view = inflater.inflate(layout, null);        return view;    }    public void showPrevious(View view)    {        mViewFlipper.setInAnimation(this, android.R.anim.slide_in_left);        mViewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);        mViewFlipper.showPrevious();        mViewFlipper.stopFlipping();    }    public void autoPlay(View view)    {        mViewFlipper.setInAnimation(this, android.R.anim.slide_in_left);        mViewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);        mViewFlipper.startFlipping();    }    public void showNext(View view)    {        mViewFlipper.setInAnimation(this, android.R.anim.slide_in_left);        mViewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);        mViewFlipper.showNext();        mViewFlipper.stopFlipping();    }    public void sendBt(View view)    {        Toast.makeText(ViewFlipperActivity.this, "Button is clicked", Toast.LENGTH_LONG).show();    }}


layout xml文件 ViewFlipper 里通过XML定义几个ImageView 作为要切换的View级件

<?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:id="@+id/activity_view_flipper"    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="shortcut.song.com.myapplication.ViewFlipperActivity">    <ViewFlipper        android:id="@+id/viewflipper"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:flipInterval="1000"        >        <ImageView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:src="@drawable/qiao"            />        <ImageView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:src="@drawable/shui"            />        <ImageView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:src="@drawable/xiangbi"            />    </ViewFlipper>    <Button        android:text="<"        android:onClick="showPrevious"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_alignParentLeft="true"        />    <Button        android:text="Auto"        android:onClick="autoPlay"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:layout_alignParentBottom="true"        />    <Button        android:text=">"        android:onClick="showNext"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentBottom="true"        /></RelativeLayout>

通过代码LayoutInflater 加载的layout 布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <AnalogClock        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <DigitalClock        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="sendBt"        /></LinearLayout>



0 0
原创粉丝点击