ViewFlipper的使用

来源:互联网 发布:何玉洁数据库第四版 编辑:程序博客网 时间:2024/05/24 06:05

ViewFlipper是ViewAnimator的子类,ViewAnimator是FrameLayout的子类,ViewAnmator是一个切换frameLayout里面子view时有动画效果的控件,而ViewFlipper可以做到同一时间只有一个子view显示,而且可以实现按固定间隔自动切换--有没有一点像广告条的感觉。

ViewFlipper使用很容易,可以直接在xml中引用即可,可以设置间隔

android:flipInterval="2000"

之后可以动态的添加子view,textview、imageview等

private ViewFlipper viewFlipper;    private String[] banners = {            "app成立了","app上线了","app更新了","app融资了","app太受欢迎了","app成功了"    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_view_flipper);        viewFlipper = (ViewFlipper) findViewById(R.id.vf);        for (final String banner : banners) {            TextView textView = new TextView(this);            textView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    Toast.makeText(ViewFlipperActivity.this,banner,Toast.LENGTH_SHORT).show();                }            });            textView.setText(banner);            FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);            textView.setLayoutParams(layoutParams);            textView.setGravity(Gravity.CENTER);            textView.setTextSize(14);            viewFlipper.addView(textView);        }//        viewFlipper.setInAnimation(this,R.anim.in);        viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.in));        viewFlipper.setOutAnimation(this,R.anim.out);        viewFlipper.startFlipping();    }

设置两个动画,进场动画和出场动画

in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">    <translate android:fromYDelta="100%" android:toYDelta="0%" android:duration="300"/>    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300"/> </set>
out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">    <translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="300"/>    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300"/></set>

实现的效果是上下轮播的文本,还是很好玩的。

也可以定义手势来操作,调用showNext,showPreview来实现切换,可参考博客:http://blog.csdn.net/harvic880925/article/details/39585347

0 0
原创粉丝点击