AdapterViewFlipper的功能和用法



AdapterViewFlipper继承了AdapterViewAnimator,它会显示一个View组件,可以通过showPrevious()showNext()方法控制组件显示上一个、下一个组件。


XML属性:

android:animateFirstView:设置显示该组件的第一个View时是否使用动画

android:inAnimation:设置组件显示时使用的动画

android:loopViews:设置循环到最后一个组件后是否自动“转头”到第一个组件

android:outAnimation:设置组件隐藏时使用的动画

android:autoStart:设置显示该组件是否是自动播放

android:flipInterval:设置自动播放的时间间隔


这些是这个的XML的一些属性。

下边,我们通过一个具体的例子来说明下它的功能


首先,我们新建一个Android项目,我们首先编辑下main.xml文件:


<RelativeLayout  
03.    xmlns:android="http://schemas.android.com/apk/res/android"  
04.    android:layout_width="match_parent"  
05.    android:layout_height="match_parent">  
06.    <AdapterViewFlipper  
07.        android:id="@+id/flipper"  
08.        android:layout_width="match_parent"  
09.        android:layout_height="match_parent"  
10.        android:flipInterval="5000"  
11.        android:layout_alignParentTop="true"/>  
12.    <Button   
13.        android:layout_width="wrap_content"  
14.        android:layout_height="wrap_content"  
15.        android:layout_alignParentBottom="true"  
16.        android:layout_alignParentLeft="true"  
17.        android:onClick="prev"  
18.        android:text="上一个"  
19.        />  
20.    <Button   
21.        android:layout_width="wrap_content"  
22.        android:layout_height="wrap_content"  
23.        android:layout_alignParentBottom="true"  
24.        android:layout_centerHorizontal="true"  
25.        android:onClick="next"  
26.        android:text="下一个"  
27.        />  
28.    <Button   
29.        android:layout_width="wrap_content"  
30.        android:layout_height="wrap_content"  
31.        android:layout_alignParentBottom="true"  
32.        android:layout_alignParentRight="true"  
33.        android:onClick="auto"  
34.        android:text="自动播放"  
35.        />     
36.</RelativeLayout>

可以看到,上边有四个组件,一个AdapterViewFlipper和三个Button,分别代表上一个、下一个、自动播放

并且为三个Button设置了点击事件


接下来我们开始编辑AdapterViewFlipperTest.java:

import android.os.Bundle;  
04.import android.view.View;  
05.import android.view.ViewGroup;  
06.import android.view.ViewGroup.LayoutParams;  
07.import android.widget.AdapterViewFlipper;  
08.import android.widget.BaseAdapter;  
09.import android.widget.ImageView;  
10.import android.app.Activity;  
11.  
12.public class AdapterViewFlipperTest extends Activity  
13.{  
14.    int[] imageIds = new int[]  
15.    {  
16.        R.drawable.shuangzi, R.drawable.shuangyu,  
17.        R.drawable.chunv, R.drawable.tiancheng, R.drawable.tianxie,  
18.        R.drawable.sheshou, R.drawable.juxie, R.drawable.shuiping,  
19.        R.drawable.shizi, R.drawable.baiyang, R.drawable.jinniu,  
20.        R.drawable.mojie   
21.    };  
22.    AdapterViewFlipper flipper;  
23.  
24.    @Override  
25.    public void onCreate(Bundle savedInstanceState)  
26.    {  
27.        super.onCreate(savedInstanceState);  
28.        setContentView(R.layout.main);  
29.        flipper = (AdapterViewFlipper) findViewById(R.id.flipper);  
30.        // 创建一个BaseAdapter对象,该对象负责提供Gallery所显示的列表项  
31.        BaseAdapter adapter = new BaseAdapter()  
32.        {  
33.            @Override  
34.            public int getCount()  
35.            {  
36.                return imageIds.length;  
37.            }  
38.  
39.            @Override  
40.            public Object getItem(int position)  
41.            {  
42.                return position;  
43.            }  
44.  
45.            @Override  
46.            public long getItemId(int position)  
47.            {  
48.                return position;  
49.            }  
50.  
51.            // 该方法的返回的View就是代表了每个列表项  
52.            @Override  
53.            public View getView(int position, View convertView, ViewGroup parent)  
54.            {  
55.                // 创建一个ImageView  
56.                ImageView imageView = new ImageView(AdapterViewFlipperTest.this);  
57.                imageView.setImageResource(imageIds[position]);  
58.                // 设置ImageView的缩放类型  
59.                imageView.setScaleType(ImageView.ScaleType.FIT_XY);  
60.                // 为imageView设置布局参数  
61.                imageView.setLayoutParams(new LayoutParams(  
62.                        LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));  
63.                return imageView;  
64.            }  
65.        };  
66.        flipper.setAdapter(adapter);  
67.    }  
68.  
69.    public void prev(View source)  
70.    {  
71.        // 显示上一个组件  
72.        flipper.showPrevious();  
73.        // 停止自动播放  
74.        flipper.stopFlipping();  
75.    }  
76.  
77.    public void next(View source)  
78.    {  
79.        // 显示下一个组件。  
80.        flipper.showNext();  
81.        // 停止自动播放  
82.        flipper.stopFlipping();  
83.    }  
84.  
85.    public void auto(View source)  
86.    {  
87.        // 开始自动播放  
88.        flipper.startFlipping();  
89.    }  
90.}  

通过这些,我们就可以设置出一些APP应用的播放图片的功能了。


效果图如下:


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值