AdapterViewFlipper的功能和用法

AdapterView继承了AdapterViewAnimator,它也会显示Adapter提供的多个View组件,但每次只能显示一个View组件,程序可通过showPrevious和showNext()方法控制该组件显示上一个、下一个组件。

AdapterViewFlipper可以在多个View切换过程中使用渐隐渐现的动画效果,除此之外,还可以调用该组件的startFlipping()控制它“自动播放”下一个View组件。

一个显示图片的例子来说明AdapterViewFlipper的用法:

activiti_main.xml:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context="com.hct.adapterviewflipper.MainActivity" >
 6
 7     <AdapterViewFlipper
 8         android:id="@+id/adapter_view_flipper_id"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11         android:layout_alignParentTop="true"
12         android:flipInterval="5000" />
13
14     <Button
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:layout_alignParentBottom="true"
18         android:layout_alignParentLeft="true"
19         android:onClick="prev"<!-- 需要实现prev方法 -->
20         android:text="@string/pre_button_txt" />
21
22     <Button
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:layout_alignParentBottom="true"
26         android:layout_alignParentRight="true"
27         android:onClick="next" <!-- 需要实现的方法 -->
28         android:text="@string/next_button_txt" />
29
30     <Button
31         android:layout_width="wrap_content"
32         android:layout_height="wrap_content"
33         android:layout_alignParentBottom="true"
34         android:layout_centerHorizontal="true"
35         android:onClick="auto_play"<!-- 需要实现的方法 -->36      android:text="@string/auto_button_txt" />3738 </RelativeLayout>

MainActivity.java:

 1 public class MainActivity extends Activity {
 2     private int[] m_image_ids = new int[] { R.drawable.baiyang,
 3             R.drawable.jinniu, R.drawable.shuangzi, R.drawable.juxie,
 4             R.drawable.shizi, R.drawable.chunv, R.drawable.tiancheng,
 5             R.drawable.tianxie, R.drawable.sheshou, R.drawable.mojie,
 6             R.drawable.shuiping, R.drawable.shuangyu };
 7     private AdapterViewFlipper m_adapterFlipper;
 8
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity_main);
13         m_adapterFlipper = (AdapterViewFlipper) findViewById(R.id.adapter_view_flipper_id);
14         BaseAdapter baseAdapter = new BaseAdapter() {
15
16             @Override
17             public View getView(int position, View convertView, ViewGroup parent) {
18                 // TODO Auto-generated method stub
19                 ImageView imageView = new ImageView(MainActivity.this);
20                 imageView.setImageResource(m_image_ids[position]);
21                 // 设置image的缩放类型
22                 imageView.setScaleType(ImageView.ScaleType.FIT_XY);
23                 imageView.setLayoutParams(new LayoutParams(
24                         LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
25                 return imageView;
26             }
27
28             @Override
29             public long getItemId(int position) {
30                 // TODO Auto-generated method stub
31                 return position;
32             }
33
34             @Override
35             public Object getItem(int position) {
36                 // TODO Auto-generated method stub
37                 return position;
38             }
39
40             @Override
41             public int getCount() {
42                 // TODO Auto-generated method stub
43                 return m_image_ids.length;
44             }
45         };
46         m_adapterFlipper.setAdapter(baseAdapter);
47     }
48
49     public void prev(View source){
50         //显示上一个组件
51         m_adapterFlipper.showPrevious();
52         m_adapterFlipper.stopFlipping();
53     }
54
55     public void next(View source){
56         //显示下一个组件
57         m_adapterFlipper.showNext();
58         m_adapterFlipper.stopFlipping();
59     }
60
61     public void auto_play(View source){
62         //自动播放
63         m_adapterFlipper.startFlipping();
64     }
65
66     @Override
67     public boolean onCreateOptionsMenu(Menu menu) {
68         // Inflate the menu; this adds items to the action bar if it is present.
69         getMenuInflater().inflate(R.menu.main, menu);
70         return true;
71     }
72
73     @Override
74     public boolean onOptionsItemSelected(MenuItem item) {
75         // Handle action bar item clicks here. The action bar will
76         // automatically handle clicks on the Home/Up button, so long
77         // as you specify a parent activity in AndroidManifest.xml.
78         int id = item.getItemId();
79         if (id == R.id.action_settings) {
80             return true;
81         }
82         return super.onOptionsItemSelected(item);
83     }
84 }

AdapterViewFlipper的功能和用法

时间: 2024-08-08 05:34:43

AdapterViewFlipper的功能和用法的相关文章

Android开发系列(二十二):AdapterViewFlipper的功能和用法

AdapterViewFlipper继承了AdapterViewAnimator,它会显示一个View组件,可以通过showPrevious()和showNext()方法控制组件显示上一个.下一个组件. XML属性: android:animateFirstView:设置显示该组件的第一个View时是否使用动画 android:inAnimation:设置组件显示时使用的动画 android:loopViews:设置循环到最后一个组件后是否自动"转头"到第一个组件 android:ou

ImageSwitcher的功能和用法

先看看继承关系,ImageSwitcher和TextSwitcher的继承关系是一样的.两个重要的父类:ViewSwitcher和ViewAnimator继承于ViewSwitcher,说明具备了切换功能继承于ViewAnimator,说明具备了动画功能 重要方法 setImageURI(Uri uri):设置图片地址 setImageResource(int resid):设置图片资源库 setImageDrawable(Drawable drawable):绘制图片 实例: MainActi

ViewSwitcher的功能和用法

ViewSwitcher 代表了视图切换组件, 本身继承了FrameLayout ,可以将多个View叠在一起 ,每次只显示一个组件.当程序控制从一个View切换到另个View时,ViewSwitcher 支持指定动画效果. 为了给ViewSwitcher 添加多个组件, 一般通过ViewSwitcher 的setFactory 方法为止设置ViewFactory ,并由ViewFactory为之创建View 即可. 下面通过一个实例来介绍 ViewFactory的用法.(仿Android系统L

GridView的功能和用法

GridView跟ListView的区别: GridView只有一列的话就是一个ListView simple: cell.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_paren

Spinner的功能和用法

Gallery和Spinner的共同父类是: AbsSpinner.他们都是列表框,区别有二: 1.Spinner显示的是垂直的列表框,而Gallery显示的是水平的列表框: 2.Spinner的作用是供用户选择,Gallery是用户拖动来查看上一个下一个列表项: 举个例子来分别说明Spinner的用法:Galler是不推荐的控件! sample1(Spinner): activity_main.xml: <LinearLayout xmlns:android="http://schema

Android开发之DatePickerDialog与TimePickerDialog的功能和用法详解

DatePickerDialog与TimePickerDialog的功能比较简单,用法也很简单,只要下面两步即可. ?  通过new关键字创建DatePickerDialog.TimePickerDialog实例,调用它们的show()方法即可将日期选择对话框.时间选择对话框显示出来. ?  为DatePickerDialog.TimePickerDialog绑定监听器,这样可以保证用户通过DatePickerDialog.TimePickerDialog设置事件是触发监听器,从而通过监听器来获

Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法

网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似性.GridView和ListView的主要区别在于:ListView只是一个方向上的分布:而GridView则会在两个方向上分布. 与ListView相似的是,GridView也需要通过Adapter来提供显示数据:可以通过SimpleAdapter来为GridView提供数据,也可以通过开发Ba

Android 自学之画廊视图(Gallery)功能和用法

Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显示的是一个水平的列表框.Gallery与Spinner有一个区别:Spinner的作用是供用户选择,而Gallery则允许用户通过拖动来查看上一个.下一个列表项. Gallery常用的XML属性及相关方法 XML属性 相关方法 说明 android:animationDuration setAnim

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期.时间选择器(DatePicker和TimePicker)的功能和用法 DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期.TimePicker用于选择时间. DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期.时间:开发者可以通过为DatePicker添加OnDateChangedListener.为TimePicker添加OnTimeC