Android无限轮播

春岁永年 2017-08-24 11:01:32
activity_main:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.yuekaolianxithree.MainActivity">

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="200dp"
/>

<Button
android:id="@+id/button"
android:layout_below="@+id/viewPager"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
/>

</RelativeLayout>

MainActivity:
无限轮播的Activity

package com.bwie.yuekaolianxithree;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;

import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.HttpURLConnection;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
private String baseUrl = "http://v.juhe.cn/toutiao/index?type=top&key=dbedecbcd1899c9785b95cc2d17131c5";
private ViewPager viewPager;
private Button button;
private ArrayList<String> list;
private ArrayList<MySuper.ResultBean.DataBean> datas;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
sendEmptyMessageDelayed(1,2000);
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

viewPager = (ViewPager) findViewById(R.id.viewPager);
button= (Button) findViewById(R.id.button);
list = new ArrayList<>();

MyAsyncTask task=new MyAsyncTask();
task.execute(baseUrl);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});

}

//无限轮播
public void wuxianlunbo() {
MyPager myPager=new MyPager();
viewPager.setAdapter(myPager);
handler.sendEmptyMessageDelayed(1,3000);
}


//异步加载图片
class MyAsyncTask extends AsyncTask {

@Override
protected Object doInBackground(Object[] params) {
String url_base = (String) params[0];

String allStr = "";
try {
URL url = new URL(url_base);
HttpURLConnection con= (HttpURLConnection) url.openConnection();
con.setReadTimeout(5 * 1000);
con.setConnectTimeout(5 * 1000);
int code = con.getResponseCode();
if (code == 200) {
InputStream is = con.getInputStream();
byte[] by = new byte[1024];
int length = 0;
while ((length = is.read(by)) != -1) {
String str = new String(by, 0, length);
allStr += str;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return allStr;
}

@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);

String getjson = (String) o;

Gson gson = new Gson();
MySuper mySuper = gson.fromJson(getjson, MySuper.class);
datas = mySuper.getResult().getData();
for (MySuper.ResultBean.DataBean da : datas) {
String thumbnail_pic_s = da.getThumbnail_pic_s();
list.add(thumbnail_pic_s);
}

//无限轮播
wuxianlunbo();

}

}

//viewPager适配
class MyPager 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) {
int index=position%list.size();
View view=View.inflate(MainActivity.this,R.layout.wuxianlunbo,null);
ImageView imageView= (ImageView) view.findViewById(R.id.wuxianimage);
ImageLoader.getInstance().displayImage(list.get(index),imageView);
container.addView(view);
return view;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}

}

MySuper:

package com.bwie.yuekaolianxithree;

import java.util.ArrayList;
public class MySuper {

private String reason;
private ResultBean result;
private int error_code;

public MySuper(String reason,ResultBean result,int error_code) {
this.reason = reason;
this.result = result;
this.error_code = error_code;
}

public String getReason() {
return reason;
}

public void setReason(String reason) {
this.reason = reason;
}

public ResultBean getResult() {
return result;
}

public void setResult(ResultBean result) {
this.result = result;
}

public int getError_code() {
return error_code;
}

public void setError_code(int error_code) {
this.error_code = error_code;
}

public static class ResultBean{

private ArrayList<DataBean> data;
private int stat;

public ResultBean(ArrayList<DataBean> data,int stat) {
this.data = data;
this.stat = stat;
}

public ArrayList<DataBean> getData() {
return data;
}

public void setData(ArrayList<DataBean> data) {
this.data = data;
}

public int getStat() {
return stat;
}

public void setStat(int stat) {
this.stat = stat;
}

public static class DataBean{

private String title;
private String thumbnail_pic_s;

public DataBean(String title,String thumbnail_pic_s) {
this.title = title;
this.thumbnail_pic_s = thumbnail_pic_s;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getThumbnail_pic_s() {
return thumbnail_pic_s;
}

public void setThumbnail_pic_s(String thumbnail_pic_s) {
this.thumbnail_pic_s = thumbnail_pic_s;
}
}


}


}


wuxianlunbo.xml:::

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/wuxianimage"
android:src="@mipmap/ic_launcher"
android:layout_width="200dp"
android:layout_height="200dp"
/>

</LinearLayout>


MyApp:


package com.bwie.yuekaolianxithree;

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class MyApp extends Application{

@Override
public void onCreate() {
super.onCreate();

ImageLoaderConfiguration con=ImageLoaderConfiguration.createDefault(getApplicationContext());
ImageLoader.getInstance().init(con);
}
}


注意:要加3权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...全文
205 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧