<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="com.example.b_week3.MainActivity">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/pager"></android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll"
android:orientation="vertical"> <RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rg"
android:orientation="horizontal"
android:gravity="center"
android:layout_marginTop="50dp">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rb1"
android:checked="true"/> <RadioButton
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rb3"/>
</RadioGroup>
</LinearLayout>
<com.limxing.xlistview.view.XListView
android:layout_below="@+id/pager"
android:id="@+id/xlv"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.limxing.xlistview.view.XListView> </RelativeLayout>
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private boolean flag;
private ViewPager pager;
private RadioGroup rg;
private int con=;
private int page=;
private List<String > imagelist=new ArrayList<String>();
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
int what=msg.what;
pager.setCurrentItem(what);
}
};
private XListView xlv;
private List<Bean.ResultBean.DataBean> list;
private MyBaseadapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager = (ViewPager) findViewById(R.id.pager);
rg = (RadioGroup) findViewById(R.id.rg);
imagelist.add("http://cdn.duitang.com/uploads/blog/201308/18/20130818150526_Ru2Bk.thumb.600_0.png");
imagelist.add("http://www.bkill.com/u/info_img/2012-09/02/2012083116140522302.jpg");
imagelist.add("http://www.it165.net/uploadfile/2011/1218/20111218070928328.jpg"); pager.setAdapter(new My());
jian();
new Thread(){
@Override
public void run() {
while(true) {
try {
Thread.sleep();
con++;
handler.sendEmptyMessage(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}.start();
xlv = (XListView) findViewById(R.id.xlv);
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(this);
aa();
}
public void aa(){
jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn="+page+"");
}
public void jiexi(String path){
new AsyncTask<String ,Void,String>(){
@Override
protected void onPostExecute(String s) {
if (s!=null){
Gson gson=new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.ResultBean.DataBean> list = bean.getResult().getData();
if (adapter==null){
adapter= new MyBaseadapter(MainActivity.this,list);
xlv.setAdapter(adapter);
}else{
adapter.sss(list,flag);
}
}
} @Override
protected String doInBackground(String... params) {
try {
URL url=new URL(params[]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout();
connection.setConnectTimeout();
int code = connection.getResponseCode();
if (code==){
InputStream is = connection.getInputStream();
return info.readFromNetWork(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path);
} @Override
public void onRefresh() {
flag=false;
++page;
aa();
xlv.stopRefresh(true);
} @Override
public void onLoadMore() {
flag=true;
++page;
aa();
xlv.stopLoadMore();
} class My extends PagerAdapter{ @Override
public int getCount() {
return Integer.MAX_VALUE;
} @Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
} @Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView=new ImageView(MainActivity.this);
ImageLoader.getInstance().displayImage(imagelist.get(position%imagelist.size()),imageView,appliction.getImageOptions());
container.addView(imageView);
return imageView;
} @Override
public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object);
}
}
public void jian(){
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override
public void onPageSelected(int position) {
switch (position%imagelist.size()){
case :
rg.check(R.id.rb1);
break;
case :
rg.check(R.id.rb2);
break;
case :
rg.check(R.id.rb3);
break;
}
} @Override
public void onPageScrollStateChanged(int state) { }
});
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch (checkedId%imagelist.size()){
case R.id.rb1:
pager.setCurrentItem();
break;
case R.id.rb2:
pager.setCurrentItem();
break;
case R.id.rb3:
pager.setCurrentItem();
break;
}
}
});
}
}
public class MyBaseadapter extends BaseAdapter {
private Context context;
private List<Bean.ResultBean.DataBean> list;
public MyBaseadapter(Context context, List<Bean.ResultBean.DataBean> list){
this.context=context;
this.list=list;
}
public void sss(List<Bean.ResultBean.DataBean> data, boolean flag){
for (Bean.ResultBean.DataBean s: data) {
if (flag){
list.add(s);
}else{
list.add(,s);
} }
notifyDataSetChanged();
}
@Override
public int getCount() {
return list!=null?list.size():;
} @Override
public Object getItem(int position) {
return list.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if (position%==){
convertView=View.inflate(context,R.layout.item,null);
ImageView image= (ImageView) convertView.findViewById(R.id.image);
TextView tv= (TextView) convertView.findViewById(R.id.tv);
tv.setText(list.get(position).getTitle());
ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(),image,appliction.getImageOptions());
}else{
convertView=View.inflate(context,R.layout.item2,null);
ImageView image1= (ImageView) convertView.findViewById(R.id.image1);
TextView tv1= (TextView) convertView.findViewById(R.id.tv1);
tv1.setText(list.get(position).getTitle());
ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(),image1,appliction.getImageOptions());
} return convertView;
}
}

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. ZigBee按键查询实践

    按键查询 即硬件上电后,程序开始运行,当检测到按键按下,触发按键语句,执行按键触发的事件: 玩单片机需要清楚两件东西,第一个是单片机的电路图,另一个则是单片机的寄存器: CC2530是51的升级版,我 ...

  2. JVM监控jconsole

    1. 描述 ​ 程序在开发过程中,有可能会发生CPU飙高.内存溢出等问题或系统在后期调优阶段,不可避免的要监控JVM情况,JDK自带的Jconsole监控工具,结合Tomcat使用非常方便,占用内存小 ...

  3. ~~函数基础(三):嵌套函数&匿名函数~~

    进击のpython 嵌套函数&匿名函数 讲完作用域之后 对变量的作用范围有大致的了解了吗? 讲个稍微小进阶的东西吧 能够帮助你更加的理解全局和局部变量 嵌套函数 玩过俄罗斯套娃不? 没玩过听过 ...

  4. MyBatis从入门到精通:各个实体类

    SysUser类: package tk.mybatis.simple.model; import java.util.Date; public class SysUser { public Long ...

  5. js 使用ES6 实现从json中取值并返回新的数组或者字符串

    1.获取的json数据是这样的: data:[ { 'Id': '1', 'Phone': '123456', 'Name': '张三', }, { 'Id': '2', 'Phone': '7894 ...

  6. 根据数据库帮助类采用事务插入图片到sql server数据库中

    我们定义数据库为image类型,然后读取图片为字符流,再保存到数据库中,首先我们定义一个读取图片的公共类,此公共类以后会用到,所以可以建立相应的帮助类 public static byte[] Rea ...

  7. jmeter_遍历转换浮点时间戳

    概述 近期帮朋友解决了一个浮点时间戳转换的问题,在这里记录一下. 具体场景是有一个十位浮点时间戳的list,需要遍历转换为当前的标准时间. list如下: 实现步骤 实现步骤其实很简单,只需要一个fo ...

  8. 问题解决:Maven execution terminated abnormally (exit code 1)

    Maven execution terminated abnormally (exit code 1) 修改setting.xml中的镜像位置 如下就可以了 <mirror> <id ...

  9. .NET Core CSharp初级篇 1-6 类的多态与继承

    .NET Core CSharp初级篇 1-6 本节内容为类的多态与继承 简介 终于讲到了面向对象三大特性中的两大特性--继承与多态.通过继承与多态,我们能很好的将类的拓展性发挥到了极致.在下面的内容 ...

  10. python load,loads,dumps,dump区别

    json 模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps()和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. 下面演 ...