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. 基于缓存或zookeeper的分布式锁实现

    缓存锁  我们常常将缓存作为分布式锁的解决方案,但是却不能单纯的判断某个 key 是否存在 来作为锁的获得依据,因为无论是 exists 和 get 命名都不是线程安全的,都无法保证只有一个线程可以获 ...

  2. 音频编辑器 OcenAudio v3.1.9.0 绿色便携版

    下载地址:点我 基本介绍 ocenaudio是一款跨平台的,易于使用的,快速的,功能强大的,好用的音频编辑软件.该软件支持Virtual Studio Technology插件,美观.统一的跨平台界面 ...

  3. MyBatis从入门到精通(十一):MyBatis高级结果映射之一对多映射

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解MyBatis中如何使 ...

  4. android_layout_linearlayout(一)

    这几天一直在研究线性布局这块,记录下一些研究心得,作为参考之用. 一.金刚钻:(线性布局,英文名 linearLayout) 布局xml文件中统大者是一个线性布局,它的长宽都已经fill_parent ...

  5. 修改mysql错误日志级别

    show variables like '%log_warnings%'; 1代表开启warning信息,0代表关闭warning信息 set session log_warnings=0; set ...

  6. Java 内存映射文件

    import java.io.*; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import jav ...

  7. 【并查集】连接格点-C++

    连接格点 描述 有一个M行N列的点阵,相邻两点可以相连.一条纵向的连线花费一个单位,一条横向的连线花费两个单位.某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通. 输入 第一 ...

  8. Edgeboard试用 — 基于CIFAR10分类模型的移植

    前言 在上一次的测试中,我们按照官方给的流程,使用EasyDL快速实现了一个具有性别检测功能的人脸识别系统,那么今天,我们将要试一下通过Paddlepaddle从零开始,训练一个自己的多分类模型,并进 ...

  9. Asp.Net Core SwaggerUI 接入

    Asp.Net Core SwaggerUI 接入 简单了解 swagger的目的简单来说就是,不用为每个接口手动写接口文档,因为它是根据接口自动生成的,接口更改时文档也同步更新,减少了手动更新的麻烦 ...

  10. Linux基础学习整理

    linux学习记录 下载地址 centos 下载地址: 网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/ ...