android图片轮播第二弹,和universal-image-loader结合,依然是很简单的代码
2016-05-04 15:44
483 查看
之前一片文章是自己根据两个开源框架修改的图片轮播,这回我们来看一个更加简单了,不过有个前提是你的项目中使用了universal-image-loader,不过这个也不是必要的,源码也是可以修改的嘛,咱就是要简单上手,立马能用
好了下面直接上效果:
下面我们来看看怎么用吧
整个项目结构:
布局文件ui_main.xml
代码中使用
首先我们需要注意到有一个ViewFactory.java的类,其实这个类没太大的用处,就是将其分离了出来,你第一步做的是配置Universal-image-loader,怎么配置这里就不说了,请看/article/1645774.html,然后ViewFactory.java如下
最后是的界面的显示
其实这个demo主要用的方法不是设置一个很大的循环,而是将第一张和最后一张做了一个过渡处理,感觉讲这个有点老生常谈了,算了,反正轮播demo千千万,也不差这一个。
你们还是直接下源码自己看吧,反正这个太简单了,太好用了
这个是下载链接http://pan.baidu.com/s/1c2iC3Zy
好了下面直接上效果:
下面我们来看看怎么用吧
整个项目结构:
布局文件ui_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <fragment android:id="@+id/fragment_cycle_viewpager_content" android:name="cn.androiddevelop.cycleviewpager.lib.CycleViewPager" android:layout_width="match_parent" android:layout_height="180dp" /> </LinearLayout>
代码中使用
首先我们需要注意到有一个ViewFactory.java的类,其实这个类没太大的用处,就是将其分离了出来,你第一步做的是配置Universal-image-loader,怎么配置这里就不说了,请看/article/1645774.html,然后ViewFactory.java如下
/** * ImageView创建工厂 */ public class ViewFactory { /** * 获取ImageView视图的同时加载显示url * * @param text * @return */ public static ImageView getImageView(Context context, String url) { ImageView imageView = (ImageView)LayoutInflater.from(context).inflate( R.layout.view_banner, null); ImageLoader.getInstance().displayImage(url, imageView); return imageView; } }
最后是的界面的显示
/** * 描述:主页 */ public class MainActivity extends Activity { private List<ImageView> views = new ArrayList<ImageView>(); private List<ADInfo> infos = new ArrayList<ADInfo>(); private CycleViewPager cycleViewPager; private String[] imageUrls = {"http://img.taodiantong.cn/v55183/infoimg/2013-07/130720115322ky.jpg", "http://pic30.nipic.com/20130626/8174275_085522448172_2.jpg", "http://pic18.nipic.com/20111215/577405_080531548148_2.jpg", "http://pic15.nipic.com/20110722/2912365_092519919000_2.jpg", "http://pic.58pic.com/58pic/12/64/27/55U58PICrdX.jpg"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ui_main); configImageLoader(); initialize(); } @SuppressLint("NewApi") private void initialize() { cycleViewPager = (CycleViewPager) getFragmentManager() .findFragmentById(R.id.fragment_cycle_viewpager_content); for(int i = 0; i < imageUrls.length; i ++){ ADInfo info = new ADInfo(); info.setUrl(imageUrls[i]); info.setContent("图片-->" + i ); infos.add(info); } // 将最后一个ImageView添加进来 views.add(ViewFactory.getImageView(this, infos.get(infos.size() - 1).getUrl())); for (int i = 0; i < infos.size(); i++) { views.add(ViewFactory.getImageView(this, infos.get(i).getUrl())); } // 将第一个ImageView添加进来 views.add(ViewFactory.getImageView(this, infos.get(0).getUrl())); // 设置循环,在调用setData方法前调用 cycleViewPager.setCycle(true); // 在加载数据前设置是否循环 cycleViewPager.setData(views, infos, mAdCycleViewListener); //设置轮播 cycleViewPager.setWheel(true); // 设置轮播时间,默认5000ms cycleViewPager.setTime(2000); //设置圆点指示图标组居中显示,默认靠右 cycleViewPager.setIndicatorCenter(); } private ImageCycleViewListener mAdCycleViewListener = new ImageCycleViewListener() { @Override public void onImageClick(ADInfo info, int position, View imageView) { if (cycleViewPager.isCycle()) { position = position - 1; Toast.makeText(MainActivity.this, "position-->" + info.getContent(), Toast.LENGTH_SHORT) .show(); } } };
其实这个demo主要用的方法不是设置一个很大的循环,而是将第一张和最后一张做了一个过渡处理,感觉讲这个有点老生常谈了,算了,反正轮播demo千千万,也不差这一个。
你们还是直接下源码自己看吧,反正这个太简单了,太好用了
这个是下载链接http://pan.baidu.com/s/1c2iC3Zy
相关文章推荐
- 修改Android Studio的代码补全快捷键,解决与输入法快捷键冲突
- android 夜间模式的实现
- Android开发中string.xml文件的使用
- android studio教程-创建第一个项目Hello World
- Android Studio Instant Run 的一个bug
- [Android]Jack和Jill的阴暗面
- Android6.0权限申请模型
- Android 跨进程通讯的方式
- [置顶] Android pdf解析方案
- Android自定义View(二)进阶
- Android 的Bitmap密度density相关问题
- android 设计模式学习资源整理
- android中的LOW Menory killer
- (抛物线)给 Android 开发者的 RxJava 详解
- Android编程小技巧
- Android系统字体规范与应用探索
- Android设置手机壁纸(WallPaper)
- 分享一个Java和Android学习视频
- 避免直接依赖 android log 库
- 【Android】13、向下一个活动传递数据