Android学习笔记(二三): 多页显示-Flipper的使用

除了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>

相关链接:我的Andriod开发相关文章

时间: 2024-10-12 20:32:56

Android学习笔记(二三): 多页显示-Flipper的使用的相关文章

Android学习笔记(七)——显示对话框窗口

显示对话框窗口 1.创建Dialog1项目,在activity_main.xml文件中添加一个Button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

Android学习笔记(七)——显示对话框窗体

显示对话框窗体 1.创建Dialog1项目,在activity_main.xml文件里加入一个Button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

Android学习笔记(八)——显示运行进度对话框

显示运行进度对话框 我们经常有这种经历:运行某一应用程序时.须要等待一会,这时会显示一个进度(Please Wait)对话框,让用户知道操作正在进行. 我们继续在上一篇中的程序中加入代码~ 1.在上一篇的activity_main.xml文件里加入一个Button,加入后的代码例如以下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/

Android学习笔记:如何高效显示图片,避免内存溢出 和 ImageView无法显示大尺寸的图片

因为手机的内存资源是有限的,每个app可使用的内存是受限的.而现在采用高分辨率拍的照片往往很大.如果加载时不注意方法,很有可能会引起java.lang.OutofMemoryError: bitmap size exceeds VM budget. 异常而导致app奔溃退出. 另外ImageView支持的图片大小也是受限制的,比如整个App虽然只放一张图片,该图片大小也没超过整个app的内存上限.但该图片大小超过了ImageView的最大值,这也是有问题的.这时需要采取方法,在加载图片时缩小加载

Android学习笔记(二二): 多页显示-Tag的使用

在手机屏幕中,Tab也是比较常用的,通常和List结合,例如我们手机的通信录.下面是Tag的结构. TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout.TabWidget就是每个tab的标签,FrameLayout则是tab内容. 如果我们使用extends TabAcitivty,如同ListActivity,TabHost必须设置为@android:id/tabhost TabWidget必须设置android:id为@android:id/tabs F

Android 学习笔记(二七):Menu

Menu由两种形式,Option menu和Context menu.前者是按下设备的Menu硬按钮弹出,后者是长按widget弹出. Option Menu 当我们按下Menu的硬件按钮时,Option Menu将被触发显示,最多可以显示6个选项的icon菜单,如果选项多于6个,第6个选项显示为“More“,点击可以进入扩展菜单.我们将在Android学习笔记(十一):Activity-ListView的例子一的基础上来学习Option Menu,也就是一个基于activity的菜单. 在这个

Android学习笔记(三五):再谈Intent(下)-一些实践

Android的UI框架要求用户将他们的app分为activity,通过itent来进行调度,其中有一个main activity由Android的launcher在桌面中调用.例如一个日历的应用,需要查看日历的activity,查看单个事件的activity,编辑事件的activity等等.在查看日历的activity中,如果用户选择的某个事件,需要通过查看事件的activity来处理.这就是最近本的app UI框架,本次,我们将学习如何通过intent来完成. Activity之间的关系 某

【转】 Pro Android学习笔记(五一):ActionBar(4):标准和Tab模式

之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示. 对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fragment的使用.我们在之前实现的标准Action Bar的基础上添加导航用的tab,代码如下: public class TabbedActionBarDemo extends SearchTestCase3 implements ActionBar.TabListener{    @Overri

Android学习笔记&#183;从零开始【一】

开始着手Android.和大多数初用Eclipse的人一样,有些手忙脚乱. 之前看Cocos2d时零星的看过:Cocos2d后来也被耽搁下来了:关于Cocos2d点此穿越,日后更新笔记. 现做下Android学习笔记,记录点滴. -->点击进入Android学习笔记导图.         -->19本Android经典教程+104个Github上火爆项目开源源码 加油! ●1 绑定的SDK工具包http://developer.android.com/sdk ●2 Application Na

Android学习笔记——关于onConfigurationChanged

从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidManifest.xml申明Activity的广告SDK都会要求加上注明这么一句属性: android:configChanges="orientation|keyboard|keyboardHidden" 通过查阅Android API可以得知android:onConfigurationChanged实际对应的是Activity里的onConfigurationChan