返回顶部
首页 > 资讯 > 移动开发 >Android自动播放Banner图片轮播效果
  • 149
分享到

Android自动播放Banner图片轮播效果

轮播Android 2022-06-06 08:06:51 149人浏览 八月长安
摘要

先看一下效果图 支持本地图片以及网络图片or本地网络混合。 使用方式: <com.jalen.autobanner.BannerView Android:id="@

先看一下效果图

支持本地图片以及网络图片or本地网络混合。

使用方式:


<com.jalen.autobanner.BannerView
 Android:id="@+id/banner"
 android:layout_width="match_parent"
 android:layout_height="230dip">
</com.jalen.autobanner.BannerView>

核心代码:


 int length = mList.size();
 View view = LayoutInflater.from(mContext).inflate(R.layout.banner_view,this,true);
 LinearLayout ll = (LinearLayout) view.findViewById(R.id.ll_points);
 vp= (ViewPager) view.findViewById(R.id.vp);
 ll.removeAllViews();
 LinearLayout.LayoutParams ll_parmas = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
 ll_parmas.leftMargin=5;
 ll_parmas.rightMargin=5;
 for(int i=0;i<length;i++){
  ImageView img = new ImageView(mContext);
  img.setLayoutParams(ll_parmas);
  if(i==0){
  img.setImageResource(R.mipmap.dot_focus);
  }else{
  img.setImageResource(R.mipmap.dot_blur);
  }
  ll.addView(img);
  mImgs.add(img);
  final ImageView imgforview = new ImageView(mContext);
  imgforview.setOnClickListener(this);
  imgforview.setScaleType(ImageView.ScaleType.FIT_XY);
  if(mList.get(i).getType()==0){//本地图片
  imgforview.setImageResource(mList.get(i).getDrawableforint());
  }else{//网络
  Glide.with(mContext).load(mList.get(i).getDrawableforurl()).diskCacheStrategy(DiskCacheStrategy.ALL).into(imgforview);
//  Glide.with(mContext).load(mList.get(i).getDrawableforurl()).listener(new RequestListener<String, GlideDrawable>() {
//   @Override
//   public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
//   Log.d("yu","Faile:"+e.toString());
//   return false;
//   }
//
//   @Override
//   public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
//    imgforview.setImageDrawable(resource);
//   return false;
//   }
//  }).into(imgforview);
//  Log.d("yu","url: "+mList.get(i).getDrawableforurl());
  }
  mViews.add(imgforview);
 }
 vp.setAdapter(new MyAdapter());
 vp.addOnPageChangeListener(onPageChange);

自动轮播利用的是handler的postdelay方法。


private Runnable task = new Runnable() {
 @Override
 public void run() {
  if(isAuto){
  currentItem = currentItem%(mViews.size());
//  Log.d("yu","runalbe "+currentItem);
  if(currentItem==0){
   vp.setCurrentItem(currentItem,false);
  }else{
   vp.setCurrentItem(currentItem);
  }
  currentItem++;
  mHandle.postDelayed(task,delaytime);
  }else{
  mHandle.postDelayed(task,delaytime);
  }
 }
 };

利用isAuto判断是否正在自动轮播 如果为false 不自动切换item。isAuto赋值操作位于OnPageChangeListener的onPageScrollStateChanged方法中:


 public void onPageScrollStateChanged(int state) {
  switch (state){
  case ViewPager.SCROLL_STATE_IDLE://用户什么都没有操作
   isAuto=true;
   currentItem = vp.getCurrentItem();
//   Log.d("yu","IDLE"+currentItem);
//   if(vp.getCurrentItem()==mViews.size()){
//   vp.setCurrentItem(0,false);
//   }
   break;
  case ViewPager.SCROLL_STATE_DRAGGING://正在滑动
   isAuto =false;
   break;
  case ViewPager.SCROLL_STATE_SETTLING://滑动结束
   isAuto=true;
   break;
  }
 }

当状态为SCROLL_STATE_DRAGGING时 说明用户正在操作 ,看下源码中的解释:


 
 public static final int SCROLL_STATE_IDLE = 0;
 
 public static final int SCROLL_STATE_DRAGGING = 1;
 
 public static final int SCROLL_STATE_SETTLING = 2;

大致意思呢就是 0代码没有任何操作。1页面正在被用户拖动。2代表成功切换至下一页面。

源码地址:https://GitHub.com/yudehai0204/autoBanner

您可能感兴趣的文章:Android实现图片轮播效果的两种方法Android实现图片轮播效果Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)Android 使用ViewPager自动滚动循环轮播效果Android使用ViewPager加载图片和轮播视频Android实现图片自动轮播并且支持手势左右无限滑动Android实现图片文字轮播特效Android实现广告图片轮播效果Android ViewPager实现图片轮播效果ViewFlipper实现文字轮播效果


--结束END--

本文标题: Android自动播放Banner图片轮播效果

本文链接: https://lsjlt.com/news/24699.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android自动播放Banner图片轮播效果
    先看一下效果图 支持本地图片以及网络图片or本地网络混合。 使用方式: <com.jalen.autobanner.BannerView android:id="@...
    99+
    2022-06-06
    轮播 Android
  • android如何实现banner轮播图无限轮播效果
    小编给大家分享一下android如何实现banner轮播图无限轮播效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下效果展示第一步(权限配置)<uses-permission android:n...
    99+
    2023-05-30
    android banner
  • Android---Banner轮播图
    轮播图是一种很常见的UI。Banner框架能够帮助我们快速开发,完成首页轮播图效果的需求。 导入Banner依赖 implementation 'io.github.youth5201314:banner:2.2.2' activity_...
    99+
    2023-08-31
    android java
  • 纯css如何实现轮播图banner自动轮换效果
    这篇文章主要为大家展示了纯css如何实现轮播图banner自动轮换效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯css如何实现轮播图banner自动轮换效果”这篇文章吧。css是什么意思cs...
    99+
    2023-06-08
  • Vue实现首页banner自动轮播效果
    本文实例为大家分享了Vue实现首页banner自动轮播的具体代码,供大家参考,具体内容如下 效果如图:  ①创建Banner.vue组件,需传入banner数组,可设置轮...
    99+
    2024-04-02
  • jquery实现图片自动轮播效果
    本文实例为大家分享了jquery实现图片自动轮播效果的具体代码,供大家参考,具体内容如下 HTML代码如下: <div id="container">         ...
    99+
    2024-04-02
  • Android实现图片轮播效果
    本文实例讲述了JaAndroid实现图片轮播效果代码,分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下: 首先看下一下布局文件: <Relative...
    99+
    2022-06-06
    图片 轮播 Android
  • android控件Banner实现简单轮播图效果
    本文实例为大家分享了android控件Banner实现简单轮播图效果的具体代码,供大家参考,具体内容如下 实现这个轮播图是在Fragment里实现的,所以要想实现,首先要创建Frag...
    99+
    2024-04-02
  • Android自定义轮播图效果
    本文实例为大家分享了Android自定义轮播图效果的具体代码,供大家参考,具体内容如下 概述 1、写一个布局,其中有ViewPager,TextView,LinearLayout. ...
    99+
    2024-04-02
  • JS实现图片自动播放效果
    本文实例为大家分享了JS实现图片自动播放效果的具体代码,供大家参考,具体内容如下 JS实现图片自动播放 1、先看效果图 2、完整代码 <!DOCTYPE html>...
    99+
    2024-04-02
  • Android UI实现广告Banner轮播效果
    本篇博客要分享的一个效果是实现广告Banner轮播效果,这个效果也比较常见,一些视频类应用就经常有,就拿360影视大全来举例吧:   用红框框住的那个效果就是小巫今天...
    99+
    2022-06-06
    Android
  • Android ViewPager实现图片轮播效果
    在app中图片的轮播显示可以说是非常常见的实现效果了,其实现原理不过是利用ViewPager,然后利用handler每隔一定的时间将ViewPager的currentItem设...
    99+
    2022-06-06
    图片 viewpager 轮播 Android
  • jquery如何实现图片自动轮播效果
    这篇文章主要介绍“jquery如何实现图片自动轮播效果”,在日常操作中,相信很多人在jquery如何实现图片自动轮播效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery如何实现图片自动轮播效果”的疑...
    99+
    2023-06-29
  • android控件Banner如何实现简单轮播图效果
    小编给大家分享一下android控件Banner如何实现简单轮播图效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文实例为大家分享了android控件Banner实现简单轮播图效果的具体代码,供大家参考,具体内容如下实...
    99+
    2023-06-15
  • Android实现广告图片轮播效果
    本文实例介绍了Android广告轮播图效果实现方法,分享给大家供大家参考,具体内容如下 首先看下一下布局文件: <RelativeLayout xmlns:andro...
    99+
    2022-06-06
    图片 广告 轮播 Android
  • Android实现轮播图效果
    本文实例为大家分享了Android实现轮播图效果的具体代码,供大家参考,具体内容如下 1.代码放在LinearLayout中, <com.jude.rollviewpage...
    99+
    2024-04-02
  • html怎么实现轮播图自动播放
    这篇文章主要介绍“html怎么实现轮播图自动播放”,在日常操作中,相信很多人在html怎么实现轮播图自动播放问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html怎么实现轮播...
    99+
    2024-04-02
  • Android实现简单的banner轮播图
    本文实例为大家分享了Android实现简单banner轮播图的具体代码,供大家参考,具体内容如下 说明:想玩一个简单的轮播图效果  用的第三方的框架玩一下,支持设置轮播图多...
    99+
    2024-04-02
  • jquery实现图片轮播和滑动效果
    本文实例为大家分享了jquery实现图片轮播和滑动效果的具体代码,供大家参考,具体内容如下 实习做了一个简易的图片轮播效果 下图是做出来的效果 源码 html 和 js部分 <...
    99+
    2024-04-02
  • Android开发 轮播广告Banner自动手动循环
    Android开发 轮播广告自动手动循环示例 前言 最近学习安卓开发,老师给布置的作业,要求设计一个轮播广告,每隔几秒钟自动切换,循环播放。在网...
    99+
    2022-06-06
    循环 android开发 轮播 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作