ViewFlipper实践

来源:互联网 发布:网站特效可以什么源码 编辑:程序博客网 时间:2024/05/27 00:50

类似于viewpager,但是没有手势滑动,更适合做轮播图(不能点的那种)。

在布局中定义:

    <ViewFlipper        android:id="@+id/flipper"        android:layout_width="match_parent"        android:layout_height="match_parent">    </ViewFlipper>
在程序中引用:
@EActivity(R.layout.activity_main4)public class Main4Activity extends AppCompatActivity {    @ViewById    ViewFlipper flipper;    private int[] dabid = {R.drawable.ic_launcher, R.drawable.images, R.drawable.init_pic, R.drawable.biz_topic_vote_submit_default};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @AfterViews    void initView() {        for (int i = 0; i < dabid.length; i++) {            flipper.addView(getImageView(dabid[i]));        }        //设置自动播放的功能       flipper.setInAnimation(Main4Activity.this, R.anim.left_in);        flipper.setOutAnimation(Main4Activity.this, R.anim.left_out);        flipper.setFlipInterval(3000);        flipper.startFlipping();    }    private ImageView getImageView(int imagrs) {        ImageView image = new ImageView(this);        image.setImageResource(imagrs);        image.setScaleType(ImageView.ScaleType.FIT_XY);        return image;    }}
在getImageView中,设置的是src的资源,这时是按照图片大小来填充当前布局,如果需要全屏显示图片,可以用setbackground。

支持手势滑动的方法:

重写onTouchEvent()方法,并关闭自动滑动的效果:

    @Override    public boolean onTouchEvent(MotionEvent event) {        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                mystartX = event.getX();                break;            case MotionEvent.ACTION_UP:                //向右划                if (event.getX() - mystartX > 100) {                    flipper.setInAnimation(this, R.anim.left_in);                    flipper.setOutAnimation(this, R.anim.left_out);                    flipper.showPrevious();                }                //向左划                if (event.getX() - mystartX < 100) {                    flipper.setInAnimation(this, R.anim.right_in);                    flipper.setOutAnimation(this, R.anim.right_out);                    flipper.showNext();                }                break;            case MotionEvent.ACTION_MOVE:                break;        }        return super.onTouchEvent(event);    }


0 0
原创粉丝点击