天天看点

ViewFlipper用法

viewflipper可以添加任意view对象,包括图片,文本,按钮,listview等。

示例代码:

view plaincopy to clipboardprint?

import android.app.activity;  

import android.os.bundle;  

import android.view.view;  

import android.view.view.onclicklistener;  

import android.view.viewgroup.layoutparams;  

import android.view.animation.animationutils;  

import android.widget.button;  

import android.widget.imageview;  

import android.widget.textview;  

import android.widget.viewflipper;  

public class viewflippertest extends activity {  

    private button previous, next;  

    private viewflipper flipper;  

    /** called when the activity is first created. */  

    @override  

    public void oncreate(bundle savedinstancestate) {  

        super.oncreate(savedinstancestate);  

        setcontentview(r.layout.main);  

        initiaview();  

        flipper.addview(addbuttonbytext("start"),   

                new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content));  

        flipper.addview(addtextbytext("gutouwang"));  

        flipper.addview(addimagebyid(r.drawable.food_gutouwang));  

        flipper.addview(addtextbytext("fushan liaoli"));  

        flipper.addview(addimagebyid(r.drawable.food_foshanliaoli));  

        flipper.addview(addbuttonbytext("end"),   

    }  

    /** 

     * initialize view 

     */  

    private void initiaview(){  

        previous = (button) findviewbyid(r.id.btnprevious);  

        next = (button) findviewbyid(r.id.btnnext);  

        flipper = (viewflipper) findviewbyid(r.id.flipper);  

        flipper.setinanimation(animationutils.loadanimation(this,  

                android.r.anim.fade_in));  

        flipper.setoutanimation(animationutils.loadanimation(this,  

                android.r.anim.fade_out));  

        previous.setonclicklistener(listener);  

        next.setonclicklistener(listener);  

    private onclicklistener listener = new onclicklistener(){  

        public void onclick(view v) {  

            // todo auto-generated method stub   

            switch(v.getid()){  

            case r.id.btnprevious:  

                flipper.showprevious();  

                break;  

            case r.id.btnnext:  

                flipper.shownext();  

            }  

        }  

    };  

    public view addtextbytext(string text){  

            textview tv = new textview(this);  

            tv.settext(text);  

            tv.setgravity(1);  

            return tv;  

    public view addimagebyid(int id){  

        imageview iv = new imageview(this);  

        iv.setimageresource(id);  

        return iv;  

    public view addbuttonbytext(string text){  

        button btn = new button(this);  

        btn.settext(text);  

        return btn;  

}  

import android.app.activity;import android.os.bundle;import android.view.view;import android.view.view.onclicklistener;import android.view.viewgroup.layoutparams;import android.view.animation.animationutils;import android.widget.button;import android.widget.imageview;import android.widget.textview;import android.widget.viewflipper;public class viewflippertest extends activity { private button previous, next; private viewflipper flipper; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); initiaview(); flipper.addview(addbuttonbytext("start"), new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); flipper.addview(addtextbytext("gutouwang")); flipper.addview(addimagebyid(r.drawable.food_gutouwang)); flipper.addview(addtextbytext("fushan liaoli")); flipper.addview(addimagebyid(r.drawable.food_foshanliaoli)); flipper.addview(addbuttonbytext("end"), new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); } /** * initialize view */ private void initiaview(){ previous = (button) findviewbyid(r.id.btnprevious); next = (button) findviewbyid(r.id.btnnext); flipper = (viewflipper) findviewbyid(r.id.flipper); flipper.setinanimation(animationutils.loadanimation(this, android.r.anim.fade_in)); flipper.setoutanimation(animationutils.loadanimation(this, android.r.anim.fade_out)); previous.setonclicklistener(listener); next.setonclicklistener(listener); } private onclicklistener listener = new onclicklistener(){public void onclick(view v) {// todo auto-generated method stubswitch(v.getid()){case r.id.btnprevious:flipper.showprevious();break;case r.id.btnnext:flipper.shownext();break;}} }; public view addtextbytext(string text){ textview tv = new textview(this); tv.settext(text); tv.setgravity(1); return tv; } public view addimagebyid(int id){imageview iv = new imageview(this);iv.setimageresource(id);return iv; } public view addbuttonbytext(string text){button btn = new button(this);btn.settext(text);return btn; }}

main.xml

<?xml version="1.0" encoding="utf-8"?>  

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"  

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    >  

    <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"  

        android:orientation="horizontal"  

        android:layout_width="fill_parent"  

        android:layout_height="wrap_content"  

        android:gravity="center"  

        >  

        <button  

            android:id="@+id/btnprevious"    

            android:layout_width="wrap_content"   

            android:layout_height="wrap_content"   

            android:layout_marginright="5dip"  

            android:text="previous"  

            />  

            android:id="@+id/btnnext"    

            android:layout_marginleft="5dip"  

            android:text="next"  

    </linearlayout>  

    <viewflipper    

        android:id="@+id/flipper"  

        android:layout_width="fill_parent"   

        android:layout_height="fill_parent"   

    </viewflipper>  

</linearlayout>  

<?xml version="1.0" encoding="utf-8"?><linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" ><buttonandroid:id="@+id/btnprevious" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginright="5dip" android:text="previous" /> <buttonandroid:id="@+id/btnnext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="5dip" android:text="next" /> </linearlayout><viewflipper android:id="@+id/flipper" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" ></viewflipper></linearlayout>

增加以下处理可以解决触摸button,listview等view上滑动的问题

@override  

public boolean dispatchtouchevent(motionevent ev){  

  this.detector.ontouchevent(ev);//在这里先处理下你的手势左右滑动事件   

return super.dispatchtouchevent(ev);  

}    

@overridepublic boolean dispatchtouchevent(motionevent ev){ this.detector.ontouchevent(ev);//在这里先处理下你的手势左右滑动事件return super.dispatchtouchevent(ev);}

参考地址:

http://topic.csdn.net/u/20101229/10/9bd48452-08a4-4e82-b92c-2c6fd7c95756.html

继续阅读