自定义viewpager的Auto方法
package com.bwie.week01;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.LinearLayout;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.LinearLayout;
import com.bwie.week01.adapter.MyPagerAdapter;
import java.util.Timer;
import java.util.TimerTask;
import java.util.TimerTask;
/**
* Created by 老北城 on 2017/12/02.
*/
* Created by 老北城 on 2017/12/02.
*/
public class AutoBanner extends LinearLayout implements ViewPager.OnPageChangeListener{
private ViewPager vp;
private Timer timer;
private int curentPager=0;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
vp.setCurrentItem(curentPager);
}
};
public AutoBanner(Context context) {
this(context,null);
}
public AutoBanner(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public AutoBanner(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
//自定义属性
View view=View.inflate(context,R.layout.viewpager_layout,this);
//在这找到这个控件
vp = (ViewPager) view.findViewById(R.id.vp);
//为控件设置改变事件
vp.addOnPageChangeListener(this);
private ViewPager vp;
private Timer timer;
private int curentPager=0;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
vp.setCurrentItem(curentPager);
}
};
public AutoBanner(Context context) {
this(context,null);
}
public AutoBanner(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public AutoBanner(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
//自定义属性
View view=View.inflate(context,R.layout.viewpager_layout,this);
//在这找到这个控件
vp = (ViewPager) view.findViewById(R.id.vp);
//为控件设置改变事件
vp.addOnPageChangeListener(this);
timer = new Timer();
}
public void setAdapter(MyPagerAdapter myPagerAdapter){
vp.setAdapter(myPagerAdapter);
}
public void startAuto(){
//开始定时器
timer.schedule(new TimerTask() {
@Override
public void run() {
++curentPager;
handler.sendEmptyMessage(0);
Log.i("123",curentPager+"q");
}
},0,3000);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
public void setAdapter(MyPagerAdapter myPagerAdapter){
vp.setAdapter(myPagerAdapter);
}
public void startAuto(){
//开始定时器
timer.schedule(new TimerTask() {
@Override
public void run() {
++curentPager;
handler.sendEmptyMessage(0);
Log.i("123",curentPager+"q");
}
},0,3000);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
@Override
public void onPageScrollStateChanged(int state) {
}
}
}
然后在main方法里面调用设配器并解析数据
package com.bwie.week01;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.bwie.week01.adapter.MyPagerAdapter;
import com.bwie.week01.bean.User;
import com.bwie.week01.bean.Vplist;
import com.google.gson.Gson;
import com.bwie.week01.bean.User;
import com.bwie.week01.bean.Vplist;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<Vplist> list = new ArrayList<Vplist>();
private AutoBanner autobanner;
private AutoBanner autobanner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
autobanner = (AutoBanner) findViewById(R.id.autobanner);
//autobanner.setAdapter(new MyPagerAdapter(this));
autobanner.startAuto();
}
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Gson gson = new Gson();
User jsonBean = gson.fromJson((String) msg.obj, User.class);
List<User.DataBean> data = jsonBean.getData();
for (int i = 0; i <data.size() ; i++) {
String img = data.get(i).getIcon();
String url = data.get(i).getUrl();
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Gson gson = new Gson();
User jsonBean = gson.fromJson((String) msg.obj, User.class);
List<User.DataBean> data = jsonBean.getData();
for (int i = 0; i <data.size() ; i++) {
String img = data.get(i).getIcon();
String url = data.get(i).getUrl();
list.add(new Vplist(img,url));
}
autobanner.setAdapter(new MyPagerAdapter(list,MainActivity.this));
}
};
autobanner.setAdapter(new MyPagerAdapter(list,MainActivity.this));
}
};
private void initData() {
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://120.27.23.105/ad/getAd");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String stringTemp = "";
while((stringTemp=reader.readLine())!=null){
builder.append(stringTemp);
}
Message message = new Message();
message.obj = builder.toString();
handler.sendMessage(message);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://120.27.23.105/ad/getAd");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String stringTemp = "";
while((stringTemp=reader.readLine())!=null){
builder.append(stringTemp);
}
Message message = new Message();
message.obj = builder.toString();
handler.sendMessage(message);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
之后就是配置适配器了 也是最重要的,最后记得要把他们放到container.addView(view);里面
package com.bwie.week01.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bwie.week01.Main2Activity;
import com.bwie.week01.MainActivity;
import com.bwie.week01.R;
import com.bwie.week01.bean.Vplist;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.bwie.week01.MainActivity;
import com.bwie.week01.R;
import com.bwie.week01.bean.Vplist;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
* Created by 老北城 on 2017/12/02.
*/
* Created by 老北城 on 2017/12/02.
*/
public class MyPagerAdapter extends PagerAdapter {
private List<Vplist> list;
private Context context;
private Context context;
public MyPagerAdapter(List<Vplist> list, Context context) {
this.list = list;
this.context = context;
}
this.list = list;
this.context = context;
}
//设置构造方法
@Override
public int getCount() {
//设置无线轮播的最大值
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public int getCount() {
//设置无线轮播的最大值
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
View view=View.inflate(context, R.layout.img_layout,null);
ImageView img = (ImageView) view.findViewById(R.id.img);
ImageLoader.getInstance().displayImage(list.get(position%list.size()).getImg(),img);
public Object instantiateItem(final ViewGroup container, final int position) {
View view=View.inflate(context, R.layout.img_layout,null);
ImageView img = (ImageView) view.findViewById(R.id.img);
ImageLoader.getInstance().displayImage(list.get(position%list.size()).getImg(),img);
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context, Main2Activity.class);
intent.putExtra("url",list.get(position).getUrl());
context.startActivity(intent);
}
});
container.addView(view);
return view;
}
});
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
布局如下
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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.bwie.week01.MainActivity">
<android.support.constraint.ConstraintLayout
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.bwie.week01.MainActivity">
<com.bwie.week01.AutoBanner
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/autobanner"
></com.bwie.week01.AutoBanner>
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/autobanner"
></com.bwie.week01.AutoBanner>
</android.support.constraint.ConstraintLayout>
<?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">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="200dp">
</android.support.v4.view.ViewPager>
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="200dp">
</android.support.v4.view.ViewPager>
</LinearLayout>
中间那个是一个点击事件,点击传值在第二个页面用webview接收直接就是一个页面
只需要在第二个页面里面添加一个webview设置一个id,在main里面找到id然后接收从 第一个页面传过来的值在赋值就可以使用了
方法如下
package com.bwie.week01;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
public class Main2Activity extends AppCompatActivity {
private WebView wed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
wed = (WebView) findViewById(R.id.wed);
Intent intent = getIntent();
String extra = intent.getStringExtra("url");
wed.loadUrl(extra);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
wed = (WebView) findViewById(R.id.wed);
Intent intent = getIntent();
String extra = intent.getStringExtra("url");
wed.loadUrl(extra);
}
}
}
布局如下
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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.bwie.week01.Main2Activity">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wed"
></WebView>
<android.support.constraint.ConstraintLayout 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.bwie.week01.Main2Activity">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wed"
></WebView>
</android.support.constraint.ConstraintLayout>