java menuadapter,AdapterViewFlipper的功能和用法

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

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

实例:自动播放的图片库

下面的实例示范了如何使用AdapterViewFlipper开发自动播放的图片库,该实例的界面上除了包含一个AdapterViewFilpper之外,还包含三个按钮,用于控制显示“上一个”、“下一个”和“自动播放”。为了控制AdapterViewFlipper要显示的多个列表项,程序为AdapterVIewFilpper设置一个Adapter即可。

下面是该实例的XML布局文件:

>

"

上面的粗体字代码定义了一个AdapterViewFlipper组件,并为三个按钮指定了事件处理方法。该实例的Activiy会采用扩展BaseAdapter的方式来实现自己的Adapte,并为AdapterViewFlipper组件设置Adapter,下面是该Activity的代码。

后台代码文件如下:

packageorg.crazyit.helloworld;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.view.ViewGroup;importandroid.view.ViewGroup.LayoutParams;importandroid.widget.AdapterViewFlipper;importandroid.widget.BaseAdapter;importandroid.widget.ImageView;public class AdapterViewFlipperTest extendsActivity {int[] imageIds=new int[]{

R.drawable.shuangzi,

R.drawable.shuangyu,

R.drawable.chunv,

R.drawable.tiancheng,

R.drawable.tianxie,

R.drawable.sheshou,

R.drawable.juxie,

R.drawable.shuiping,

R.drawable.shizi,

R.drawable.baiyang,

R.drawable.jinniu,

R.drawable.mojie

};

AdapterViewFlipper flipper;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_adapter_view_flipper_test);

flipper=(AdapterViewFlipper)findViewById(R.id.flipper);//创建一个BaseAdapter对象,该对象负责提供Gallery所显示的列表项

BaseAdapter adapter=newBaseAdapter()

{

@Overridepublic intgetCount() {//TODO Auto-generated method stub

returnimageIds.length;

}

@Overridepublic Object getItem(intposition) {//TODO Auto-generated method stub

returnposition;

}

@Overridepublic long getItemId(intposition) {//TODO Auto-generated method stub

returnposition;

}//该方法返回的View代表了每个列表项

@Overridepublic View getView(intposition, View convertView, ViewGroup parent) {//TODO Auto-generated method stub//创建一个ImageView

ImageView imageView=new ImageView(AdapterViewFlipperTest.this);

imageView.setImageResource(imageIds[position]);//设置ImageView的缩放类型

imageView.setScaleType(ImageView.ScaleType.FIT_XY);//为ImageView设置布局参数

imageView.setLayoutParams(newLayoutParams(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT));returnimageView;

}

};

flipper.setAdapter(adapter);

}public voidprev(View source)

{//显示上一个组件

flipper.showPrevious();//停止自动播放

flipper.stopFlipping();

}public voidnext(View source)

{//显示一个组件

flipper.showNext();//停止自动播放

flipper.stopFlipping();

}public voidauto(View source)

{//开始自动播放

flipper.startFlipping();

}

@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.adapter_view_flipper_test, menu);return true;

}

}

上面的程序中粗体字代码调用了AdapterViewFlipper的showPrevious()、showNext()方法来控制该组件显示上一个、下一个组价,并调用了startFlipping()方法控制自动播放。

运行上面的程序出现如下效果:

64c5e2e92c81bf515ae827ae0974badf.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值