1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. xmlns:app="http://schemas.android.com/apk/res-auto"
  5. xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
  6. android:layout_height="match_parent" tools:context="com.example.b_week3.MainActivity">
  7. <android.support.v4.view.ViewPager
  8. android:layout_width="match_parent"
  9. android:layout_height="100dp"
  10. android:id="@+id/pager"></android.support.v4.view.ViewPager>
  11. <LinearLayout
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:id="@+id/ll"
  15. android:orientation="vertical">
  16.  
  17. <RadioGroup
  18. android:layout_width="match_parent"
  19. android:layout_height="wrap_content"
  20. android:id="@+id/rg"
  21. android:orientation="horizontal"
  22. android:gravity="center"
  23. android:layout_marginTop="50dp">
  24. <RadioButton
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:id="@+id/rb1"
  28. android:checked="true"/>
  29.  
  30. <RadioButton
  31. android:id="@+id/rb2"
  32. android:layout_width="wrap_content"
  33. android:layout_height="wrap_content" />
  34.  
  35. <RadioButton
  36. android:layout_width="wrap_content"
  37. android:layout_height="wrap_content"
  38. android:id="@+id/rb3"/>
  39. </RadioGroup>
  40. </LinearLayout>
  41. <com.limxing.xlistview.view.XListView
  42. android:layout_below="@+id/pager"
  43. android:id="@+id/xlv"
  44. android:layout_width="match_parent"
  45. android:layout_height="match_parent"></com.limxing.xlistview.view.XListView>
  46.  
  47. </RelativeLayout>
  1. public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
  2. private boolean flag;
  3. private ViewPager pager;
  4. private RadioGroup rg;
  5. private int con=;
  6. private int page=;
  7. private List<String > imagelist=new ArrayList<String>();
  8. private Handler handler=new Handler(){
  9. @Override
  10. public void handleMessage(Message msg) {
  11. int what=msg.what;
  12. pager.setCurrentItem(what);
  13. }
  14. };
  15. private XListView xlv;
  16. private List<Bean.ResultBean.DataBean> list;
  17. private MyBaseadapter adapter;
  18.  
  19. @Override
  20. protected void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_main);
  23. pager = (ViewPager) findViewById(R.id.pager);
  24. rg = (RadioGroup) findViewById(R.id.rg);
  25. imagelist.add("http://cdn.duitang.com/uploads/blog/201308/18/20130818150526_Ru2Bk.thumb.600_0.png");
  26. imagelist.add("http://www.bkill.com/u/info_img/2012-09/02/2012083116140522302.jpg");
  27. imagelist.add("http://www.it165.net/uploadfile/2011/1218/20111218070928328.jpg");
  28.  
  29. pager.setAdapter(new My());
  30. jian();
  31. new Thread(){
  32. @Override
  33. public void run() {
  34. while(true) {
  35. try {
  36. Thread.sleep();
  37. con++;
  38. handler.sendEmptyMessage(con);
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }
  44. }.start();
  45. xlv = (XListView) findViewById(R.id.xlv);
  46. xlv.setPullLoadEnable(true);
  47. xlv.setXListViewListener(this);
  48. aa();
  49. }
  50. public void aa(){
  51. jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn="+page+"");
  52. }
  53. public void jiexi(String path){
  54. new AsyncTask<String ,Void,String>(){
  55. @Override
  56. protected void onPostExecute(String s) {
  57. if (s!=null){
  58. Gson gson=new Gson();
  59. Bean bean = gson.fromJson(s, Bean.class);
  60. List<Bean.ResultBean.DataBean> list = bean.getResult().getData();
  61. if (adapter==null){
  62. adapter= new MyBaseadapter(MainActivity.this,list);
  63. xlv.setAdapter(adapter);
  64. }else{
  65. adapter.sss(list,flag);
  66. }
  67. }
  68. }
  69.  
  70. @Override
  71. protected String doInBackground(String... params) {
  72. try {
  73. URL url=new URL(params[]);
  74. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  75. connection.setRequestMethod("GET");
  76. connection.setReadTimeout();
  77. connection.setConnectTimeout();
  78. int code = connection.getResponseCode();
  79. if (code==){
  80. InputStream is = connection.getInputStream();
  81. return info.readFromNetWork(is);
  82. }
  83. } catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. return null;
  87. }
  88. }.execute(path);
  89. }
  90.  
  91. @Override
  92. public void onRefresh() {
  93. flag=false;
  94. ++page;
  95. aa();
  96. xlv.stopRefresh(true);
  97. }
  98.  
  99. @Override
  100. public void onLoadMore() {
  101. flag=true;
  102. ++page;
  103. aa();
  104. xlv.stopLoadMore();
  105. }
  106.  
  107. class My extends PagerAdapter{
  108.  
  109. @Override
  110. public int getCount() {
  111. return Integer.MAX_VALUE;
  112. }
  113.  
  114. @Override
  115. public boolean isViewFromObject(View view, Object object) {
  116. return view==object;
  117. }
  118.  
  119. @Override
  120. public Object instantiateItem(ViewGroup container, int position) {
  121. ImageView imageView=new ImageView(MainActivity.this);
  122. ImageLoader.getInstance().displayImage(imagelist.get(position%imagelist.size()),imageView,appliction.getImageOptions());
  123. container.addView(imageView);
  124. return imageView;
  125. }
  126.  
  127. @Override
  128. public void destroyItem(ViewGroup container, int position, Object object) {
  129.  
  130. container.removeView((View) object);
  131. }
  132. }
  133. public void jian(){
  134. pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  135. @Override
  136. public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
  137.  
  138. }
  139.  
  140. @Override
  141. public void onPageSelected(int position) {
  142. switch (position%imagelist.size()){
  143. case :
  144. rg.check(R.id.rb1);
  145. break;
  146. case :
  147. rg.check(R.id.rb2);
  148. break;
  149. case :
  150. rg.check(R.id.rb3);
  151. break;
  152. }
  153. }
  154.  
  155. @Override
  156. public void onPageScrollStateChanged(int state) {
  157.  
  158. }
  159. });
  160. rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  161. @Override
  162. public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
  163. switch (checkedId%imagelist.size()){
  164. case R.id.rb1:
  165. pager.setCurrentItem();
  166. break;
  167. case R.id.rb2:
  168. pager.setCurrentItem();
  169. break;
  170. case R.id.rb3:
  171. pager.setCurrentItem();
  172. break;
  173. }
  174. }
  175. });
  176. }
  177. }
  1. public class MyBaseadapter extends BaseAdapter {
  2. private Context context;
  3. private List<Bean.ResultBean.DataBean> list;
  4. public MyBaseadapter(Context context, List<Bean.ResultBean.DataBean> list){
  5. this.context=context;
  6. this.list=list;
  7. }
  8. public void sss(List<Bean.ResultBean.DataBean> data, boolean flag){
  9. for (Bean.ResultBean.DataBean s: data) {
  10. if (flag){
  11. list.add(s);
  12. }else{
  13. list.add(,s);
  14. }
  15.  
  16. }
  17. notifyDataSetChanged();
  18. }
  19. @Override
  20. public int getCount() {
  21. return list!=null?list.size():;
  22. }
  23.  
  24. @Override
  25. public Object getItem(int position) {
  26. return list.get(position);
  27. }
  28.  
  29. @Override
  30. public long getItemId(int position) {
  31. return position;
  32. }
  33.  
  34. @Override
  35. public View getView(int position, View convertView, ViewGroup parent) {
  36. if (position%==){
  37. convertView=View.inflate(context,R.layout.item,null);
  38. ImageView image= (ImageView) convertView.findViewById(R.id.image);
  39. TextView tv= (TextView) convertView.findViewById(R.id.tv);
  40. tv.setText(list.get(position).getTitle());
  41. ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(),image,appliction.getImageOptions());
  42. }else{
  43. convertView=View.inflate(context,R.layout.item2,null);
  44. ImageView image1= (ImageView) convertView.findViewById(R.id.image1);
  45. TextView tv1= (TextView) convertView.findViewById(R.id.tv1);
  46. tv1.setText(list.get(position).getTitle());
  47. ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(),image1,appliction.getImageOptions());
  48. }
  49.  
  50. return convertView;
  51. }
  52. }

studio无限轮播的更多相关文章

  1. iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

    这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动.于是乎就有了今天这篇博客,看到“手机淘宝”这个 ...

  2. iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

    iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView 时间:2016-01-19 19:13:43      阅读:630      评论:0      收藏:0   ...

  3. iOS开发之ImageView复用实现图片无限轮播

    在上篇博客中iOS开发之多图片无缝滚动组件封装与使用给出了图片无限轮播的实现方案之一,下面在给出另一种解决方案.今天博客中要说的就是在ScrollView上贴两个ImageView, 把ImageVi ...

  4. iOS开发UI篇—无限轮播(循环利用)

    iOS开发UI篇—无限轮播(循环利用) 一.无限轮播  1.简单说明 在开发中常需要对广告或者是一些图片进行自动的轮播,也就是所谓的无限滚动. 在开发的时候,我们通常的做法是使用一个UIScrollV ...

  5. iOS开发UI篇—无限轮播(新闻数据展示)

    iOS开发UI篇—无限轮播(新闻数据展示) 一.实现效果        二.实现步骤 1.前期准备 (1)导入数据转模型的第三方框架MJExtension (2)向项目中添加保存有“新闻”数据的pli ...

  6. iOS开发UI篇—无限轮播(循环展示)

    iOS开发UI篇—无限轮播(循环展示) 一.简单说明 之前的程序还存在一个问题,那就是不能循环展示,因为plist文件中只有五个数组,因此第一个和最后一个之后就没有了,下面介绍处理这种循环展示问题的小 ...

  7. iOS开发UI篇—无限轮播(功能完善)

    iOS开发UI篇—无限轮播(功能完善) 一.自动滚动 添加并设置一个定时器,每个2.0秒,就跳转到下一条. 获取当前正在展示的位置. [self addNSTimer]; } -(void)addNS ...

  8. Android--ViewPager的无限轮播

    ViewPage_RadioButton实现带小圆点的无限轮播,效果还能凑合着用. 1.在ViewPage的监听里面这样处理 @Override public void onPageSelected( ...

  9. Swift应用案例 1.无限轮播

      从今天开始,我学习的重点开始转向Swift,并且会分享一些自己学习的心得体会,今天给大家带来的的是无限轮播.广告页的无限轮播是非常常见的一个功能,大多数APP都有,大多数程序员也都实现过,今天我们 ...

随机推荐

  1. springboot2.x纯注解整合dubbo

    springboot1.x和springboot2.x整合差距挺大的,基于最新的2.x进行整合,使用纯注解的方式 依赖选取 首先pom文件的依赖引入,maven仓库有Apache和alibaba两个 ...

  2. 以Spring Cache扩展为例介绍如何进行高效的源码的阅读

    摘要 日常开发中,需要用到各种各样的框架来实现API.系统的构建.作为程序员,除了会使用框架还必须要了解框架工作的原理.这样可以便于我们排查问题,和自定义的扩展.那么如何去学习框架呢.通常我们通过阅读 ...

  3. cogs426血帆海盗(网络流打法)

    这道题基本上来就能看的出来是网络流但难点在于它的结果貌似与最大流,最小割都没啥关系,我猜不少萌新像我一样想暴力枚举边(要是考试我就真这么做了),但很明显,出题人没打算让你这么水过,100000的数据不 ...

  4. 【UVA - 10006 】Carmichael Numbers (快速幂+素数筛法)

    -->Carmichael Numbers  Descriptions: 题目很长,基本没用,大致题意如下 给定一个数n,n是合数且对于任意的1 < a < n都有a的n次方模n等于 ...

  5. 【分治】黑白棋子的移动-C++

    题目描述 有2n个棋子(n≥4)排成一行,开始为位置白子全部在左边,黑子全部在右边,如下图为n=5的情况: ○○○○○●●●●● 移动棋子的规则是:每次必须同时移动相邻的两个棋子,颜色不限,可以左移也 ...

  6. 【CodeForces - 1167C 】News Distribution(并查集)

    News Distribution 题意 大概就是分成几个小团体,给每个人用1 - n编号,当对某个人传播消息的时候,整个小团体就知道这个消息,输出 分别对1 - n编号的某个人传递消息时,有多少人知 ...

  7. Java项目案例之---登录和修改(JSP)

    登录和修改(JSP) 通过案例学习jsp的常用知识点: 1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中 2.通过page将需要的包导入 3.用request.getParameter ...

  8. Flume框架的学习使用

    Flume框架的学习使用 Flume简介 Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务. Flume基于流失架构,容错性强,也很灵活简单 Flume,kafka用 ...

  9. C#3.0新增功能05 分部方法

    连载目录    [已更新最新开发文章,点击查看详细]    分部类或结构可以包含分部方法. 类的一个部分包含方法的签名. 可以在同一部分或另一个部分中定义可选实现. 如果未提供该实现,则会在编译时删除 ...

  10. vijos P1848 记数问题

    自答[119ms内存456.0 KiB] #include<iostream>using namespace std;int num = 0;void judge(int n, int x ...