Android实现轮播图片效果_第1页
Android实现轮播图片效果_第2页
Android实现轮播图片效果_第3页
Android实现轮播图片效果_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Android实现轮播图片效果本文实例为大家分享了Android实现轮播图片效果的具体代码,供大家参考,具体内容如下

首先,将这些要轮播的图片和一些文本分别放置在不同的数据集合中,程序启动的时候默认显示一组图片和文本数据,然后启动一个定时器,每隔一段时间便替换掉显示的图片和文本数据,同时加入一些动画效果,已达到轮播的特效。同时,我们也要实现手指滑动图片达到轮播的效果。

1、程序启动界面MainActivity

publicclassMainActivityextendsAppCompatActivityimplementsImageBannerFramLayout.FramLayoutLisenner{

privateImageBannerFramLayoutmGroup;

privateint[]ids=newint[]{

R.drawable.i1,//图片资源1

R.drawable.i2,//图片资源2

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//计算当前手机宽度

DisplayMetricsdisplayMetrics=newDisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

intwidth=displayMetrics.widthPixels;

mGroup=(ImageBannerFramLayout)findViewById(R.id.image_group);

mGroup.setLisenner(this);

ListBitmaplist=newArrayList();

for(inti=0;iids.length;i++){

Bitmapbitmap=BitmapFactory.decodeResource(getResources(),ids[i]);

list.add(bitmap);

mGroup.addBitmaps(list);

@Override

publicvoidchickImageIndex(intpos){

Toast.makeText(this,索引值=+pos,Toast.LENGTH_SHORT).show();

}

2、新建包view下面新建两个类

1)新建ImageBarnnerViewGroup类继承自ViewGroup

publicclassImageBarnnerViewGroupextendsViewGroup{

privateintchildren;//我们ViewGroup的子视图总个数

privateintchildwidth;//子视图的宽度

privateintchildheight;//子视图的高度

privateintx;//此时的x的值代表的是第一次按下的位置的横坐标,每一次移动过的过程中移动之前的位置横坐标

privateintindex=0;//代表名为每张图片的索引

privateScrollerscroller;

*利用一个单击变量开关进行判断,离开屏幕的一瞬间判断用户的操作是点击

privatebooleanisClick;//true的时候点击事件,false的时候不是点击事件

privateImageBarnnerListerlister;

privateImageBarnnerViewGroupLisnnerbarnnerViewGroupLisnner;

publicImageBarnnerListergetLister(){

returnlister;

publicvoidsetLister(ImageBarnnerListerlister){

this.lister=lister;

publicImageBarnnerViewGroupLisnnergetBarnnerViewGroupLisnner(){

returnbarnnerViewGroupLisnner;

publicvoidsetBarnnerViewGroupLisnner(ImageBarnnerViewGroupLisnnerbarnnerViewGroupLisnner){

this.barnnerViewGroupLisnner=barnnerViewGroupLisnner;

publicinterfaceImageBarnnerLister{

voidchickImageIndex(intpos);//pos代表的是我们当前的图片的具体索引值

*实现轮播图底部圆点切换效果

*自定义一个继承自FragmenLayou布局,利用FragmeLayout布局特性

//自动轮播

privatebooleanisAuto=true;//默认情况下开启轮播

privateTimertimer=newTimer();

privateTimerTasktimerTask;

@SuppressLint(HandlerLeak)

privateandroid.os.Handlerautohandler=newandroid.os.Handler(){

@Override

publicvoidhandleMessage(Messagemsg){

switch(msg.what){

case0://我们需要图片的自动轮播

if(++index=children){//如果是最后一张图片,从第一张开始

index=0;

scrollTo(childwidth*index,0);

barnnerViewGroupLisnner.selectImage(index);

break;

default:

privatevoidstartAuto(){

isAuto=true;

privatevoidstopAuto(){

isAuto=false;

*采用Timer,TimerTask,Handler三者结合的方式来实现自动轮播

publicImageBarnnerViewGroup(Contextcontext){

super(context);

initObj();

publicImageBarnnerViewGroup(Contextcontext,AttributeSetattrs){

super(context,attrs);

initObj();

pu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论