博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记(二三): 多页显示-Flipper的使用
阅读量:7111 次
发布时间:2019-06-28

本文共 3348 字,大约阅读时间需要 11 分钟。

除了Tab在一个Activity中显示多页内容,还可以使用Flipper,Flipper没有标签,是一页页的显示方式。

例子一:基础的Flipper

1)Android XML文件

Flipper采用ViewFlipper进行定义,里面依次放着各页的内容。

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

<LinearLayout ...... >
  <Button android:id="@+id/c94_flip_me" ... ...    android:text="Flip me" />
  <ViewFlipper android:id="@+id/c94_details"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >
    <TextView android:layout_width="fill_parent"    <!--ViewFlipper中的第一个元素 -->
     android:layout_height="wrap_content"
     android:textStyle="bold"
     android:textColor="#FF00FF00"
     android:text="This is the first Panel" />
    <TextView ... ...    android:text="This is the Second Panel"/>       <!--ViewFlipper中的第二个元素 -->
    <TextView ... ...    android:text="This is the third Panel"/>             <!--ViewFlipper中的第三个元素 -->
  </ViewFlipper>
</LinearLayout>

2)代码编写

我们点击id为c94_details的button,则依次显示ViewFlipper中的元素,循环显示,如下图所示:

public class Chapter9Test4 extends Activity{

    private ViewFlipper flipper = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chapter_9_test4);
       
        flipper = (ViewFlipper)findViewById(R.id.c94_details);
        Button button = (Button)findViewById(R.id.c94_flip_me);
        button.setOnClickListener(new View.OnClickListener() {         
            public void onClick(View arg0) {
                //每次点击button,则ViewFlipper中的显示更换为下一个元素,如果已是最后的元素,从头开始
                flipper.showNext();
            }
        });
    }
}

例子二:添加Flipper元素和自动翻页

这个例子中的XML文件如下,在LinearLayout中只有ViewFlipper,且ViewFlipper里面没有设置元素。很简单,不再展示,下面是源代码;

public class Chapter9Test5 extends Activity{

    private ViewFlipper flipper = null;
    public static String[] items={"lorem", "ipsum", "dolor", "sit", ... ... //若干String
       
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chapter_9_test5);
        //步骤1:获得flipper的实例
        flipper = (ViewFlipper) findViewById(R.id.c95_details);
        //步骤2:设置Flipper翻页的动态效果,在后面介绍,这里给出进入和离开的两个效果
        flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in));
        flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));
        //步骤3:通过flipper.addView向flipper动态加入每页的View
        for(String item:Chapter9Test5.items){
            Button button = new Button(this);
            button.setText(item);
            flipper.addView(button, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT));
        }
        //步骤4:设置自动翻页的时间间隔,本例为3秒,也可以在XML文件中通过android:interval进行设置
        flipper.setFlipInterval(3000);
        //步骤5:开始启动自动翻页,通过stopFlipping()可以进行停止。
        flipper.startFlipping();
    }
}

这里比较麻烦的翻页的动态效果,即步骤2。我们在res/下创建信得了Floder,命名为anim,里面将存放描述动态的XML文件,我们可以字 节利用SDK自动的例子,在anim按邮件import->General->FileSystem->Next->在 Browser中指向...../android-sdk-linux_x86/samples/android-9/ApiDemos/res /anim,Demo例子已经给出了一些范例,我们选择push_left_in和push_left_out导入即可。

我们看看push_left_in.xml文件,描述了动态方式:

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

    <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

我们看看push_left_out.xml文件,描述了动态方式:

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

   <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
   <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

转载于:https://www.cnblogs.com/xingmeng/archive/2012/06/04/2534879.html

你可能感兴趣的文章
《数字逻辑设计与计算机组成》一2.3 规范表达式
查看>>
借道大数据 互联网基金再探“蓝海”
查看>>
浙江医疗综合体获批 医疗资源也可共享
查看>>
3G/4G调制解调器曝漏洞:可致设备被完全控制
查看>>
你知道你的Mac摄像头正在偷窥你吗?这款工具或许能帮你
查看>>
超干货!一套完整的设计分析思路应该是怎样的?
查看>>
关于视频流的各种问题,后续整理
查看>>
从零开始,我的上云路
查看>>
【Spark Summit East 2017】R与Spark:如何使用RStudio的 Sparklyr和H2O的 Rsparkling分析数据...
查看>>
FIS源码-fis release概览
查看>>
鹰眼跟踪、EDAS燎原, 看高性能服务框架EDAS的架构实践
查看>>
使用LogHub进行日志实时采集
查看>>
使用jackson-mapper-lgpl序列化和反序列化
查看>>
Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像(克隆和导入)
查看>>
iOS开发之使程序在后台运行
查看>>
MySQL修改密码和加密
查看>>
批处理文件之间的相互调用问题
查看>>
Servlet的Listener的使用
查看>>
Handler学习小结
查看>>
HEVC算法和体系结构:编码结构之编码时的分层处理架构
查看>>