首页 > 代码库 > AdapterViewFlipper的功能和用法
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 <Button15 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 <Button23 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 <Button31 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" />
37
38 </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 @Override10 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 @Override17 public View getView(int position, View convertView, ViewGroup parent) {18 // TODO Auto-generated method stub19 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 @Override29 public long getItemId(int position) {30 // TODO Auto-generated method stub31 return position;32 }33 34 @Override35 public Object getItem(int position) {36 // TODO Auto-generated method stub37 return position;38 }39 40 @Override41 public int getCount() {42 // TODO Auto-generated method stub43 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 @Override67 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 @Override74 public boolean onOptionsItemSelected(MenuItem item) {75 // Handle action bar item clicks here. The action bar will76 // automatically handle clicks on the Home/Up button, so long77 // 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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。