android 简单实现Banner 轮廓图效果自动播放
来源:互联网 发布:高级java工程师招聘 编辑:程序博客网 时间:2024/06/05 05:32
于广告轮播Banner这个东西,GitHub上面应该有现成的开源组件,不过我没去找过,觉得实现起来不会太难,就自己去仿写了,下面我说下实现的思路:
1、首先看到这个可以滑动切换图片的界面,我们很自然就会想到ViewPager控件。2、需要去考虑它的伪循环(其实只是滑到末尾图片再切换到开始图片,给人一种"无限循环"的错觉),做过GalleyView画廊效果的朋友应该很熟悉,当我们滑到画廊到底端,如果想看第一张图片需要再重新滑回去,那么这样给用户的体验就不好,所以我们会在适配器Adapter的getCount()方法里,返回一个很大的数值,让它能够"无限循环"。不清楚的朋友也没关系,下面代码会详细提到。3、就是考虑它的自动滑动效果,那么很简单的就会去想到定时器,每隔几秒让它自动滑动一次,再通过配合ViewPager的设置当前页面setCurrentItem就可以达到我们想要的效果。4、最后就是需要考虑到细节方面的东西了,如何让画面滑动配合底部的小圆圈点,我们在做定时器操作的时候,无限循环肯定是一个while永true的状态,当我们切换退出当前界面的时候,这个定时器循环要怎么处理。
一,首先要导入相关依赖compile 'com.github.bumptech.glide:glide:3.7.0'compile 'com.squareup.okio:okio:1.5.0'compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'compile 'com.google.code.gson:gson:2.8.2'compile 'com.youth.banner:banner:1.4.9'//compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
第二步 。对应的相关的权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.VIBRATE" />
<com.youth.banner.Banner android:id="@+id/mybanner" android:layout_width="match_parent" android:layout_height="150dp"></com.youth.banner.Banner>
第三步 :创建相关的实现的类创建GlideImageLoader 图片加载类public class GlideImageLoader extends ImageLoader { public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); }}第四java代码 对应的Activity 主页面 或者Fragment界面public class MainActivity extends AppCompatActivity implements IView{ Banner banner; ArrayList mlist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); banner = (Banner)findViewById(R.id.banner); Banner banner; ArrayList mlist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); banner = (Banner)findViewById(R.id.banner); userpresenter = new UserPresenter(this); userpresenter.getUser(Api.HOME_URL); }//该方法是MVP实现View层的接口 重写的方法 @Override public void getNews(ArrayList<News.DataBean> list) { recycler.setAdapter(homeadper =new HomeAdaper(Main2Activity.this,list)); mlist = new ArrayList(); for (int i = 0; i < list.size(); i++) { mlist.add(list.get(i).getImage_url()); } banner.setImageLoader(new GlideImageLoader()); banner.setImages(mlist); banner.start();}
compile 'com.jakewharton:butterknife:7.0.1'黄油刀
compile 'com.youth.banner:banner:1.4.9' compile 'com.github.bumptech.glide:glide:3.7.0'
阅读全文
0 0
- android 简单实现Banner 轮廓图效果自动播放
- Android Banner效果简单实现
- android 自动播放Banner
- Android实现轮播图Banner。包括自动播放,手动滑动。
- 轮播banner,实现旋转木马效果,Galler 效果,可无限循环自动播放、拖拽
- Android Banner 简单实现
- Android之ViewPager自动循环播放(轮播)效果实现(超简单)
- Android简单暴力实现Banner
- Android 用ViewPager实现可自动循环的Banner图
- Android实现Banner轮播效果
- android 实现自动滚动的 Banner 横幅
- android 实现自动滚动的 Banner 横幅
- Android实现banner自动和手动轮换
- HTML+CSS+JS实现banner横幅自动切换效果
- Android之最简单的Banner实现
- Android 轮播图Banner的简单实现
- 简单三步实现banner的轮播效果
- Banner的简单使用(实现轮播效果)
- webpack2.1.0中注意的问题
- activity的四种启动模式详解
- FZU 2216 The Longest Straight (二分+01优化)
- Spring 源码解析之HandlerAdapter源码解析(二)
- CentOS上完全卸载mysql
- android 简单实现Banner 轮廓图效果自动播放
- 排序算法
- maven-compiler-plugin
- 数据结构线性表——链表实现
- 【C#补习计划】get和set的作用
- Node.js实现WEB 服务开发
- Pangu and Stones(区间dp)
- 求1~100能被7整除的数之和
- MySQL 锁