List<String> list = new ArrayList<>();
list.add("https://www.zhaoapi.cn/images/quarter/ad1.png");
list.add("https://www.zhaoapi.cn/images/quarter/ad2.png");
list.add("https://www.zhaoapi.cn/images/quarter/ad3.png");
list.add("https://www.zhaoapi.cn/images/quarter/ad4.png");
myview.setUrl(list);
myview.init(li);
public class My extends ViewPager {
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 0) {
int currentItem = getCurrentItem();
currentItem++;
setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0, 2000);
}
}
};
private List<String> imgUrl;
private ArrayList<RadioButton> rb;
public My(@NonNull Context context) {
super(context);
}
public My(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public void setUrl(List<String> imgUrl) {
this.imgUrl = imgUrl;
}
public void init(LinearLayout linearLayout) {
rb = new ArrayList<>();
for (int i = 0; i < imgUrl.size(); i++) {
RadioButton radioButton = new RadioButton(getContext());
rb.add(radioButton);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
50,
50);
params.rightMargin = 30;//设置指示器之间的距离
linearLayout.setGravity(Gravity.CENTER);
linearLayout.addView(radioButton, params);
this.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//修改上一个的状态
int currentItem = getCurrentItem();
rb.get(currentItem % imgUrl.size()).setChecked(false);
//更新新的未位置
Log.e("gg", "........" + currentItem);
currentItem++;
Log.e("gg2", "........" + currentItem);
//修改当前位置指示器的状态
rb.get(currentItem % imgUrl.size()).setChecked(true);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
this.setAdapter(new Myadapter(imgUrl, getContext()));
setCurrentItem(200);
handler.sendEmptyMessageDelayed(0, 2000);
}
package com.example.week3_lianxi.myview;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.example.week3_lianxi.R;
import com.example.week3_lianxi.adapter.Myadapter;
import java.util.ArrayList;
import java.util.List;
/**
* aiuthor Ender 鲍晨华
* email 15011462696@163.com
* created 2018/7/7 8:37
*/
public class MyViewpage extends ViewPager {
private List<String> imgUrl;
private int currentPage = 200;
private ArrayList<RadioButton> radioViews;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0){
int currentItem = getCurrentItem();
currentItem++;
setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0,1000);
}
}
};
public MyViewpage(@NonNull Context context) {
super(context);
}
public MyViewpage(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public void setImgUrl(List<String> imgUrl) {
this.imgUrl = imgUrl;
}
public void init(LinearLayout linearLayout) {
// LinearLayout linearLayout = new LinearLayout(context);
// LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,50);
// this.addView(linearLayout,param);
radioViews = new ArrayList<>();
for (int i = 0; i < imgUrl.size(); i++) {
RadioButton radioButton = new RadioButton(getContext());
// radioButton.setButtonDrawable(null);
// radioButton.setBackgroundResource(R.drawable.xuna);
radioViews.add(radioButton);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
50,
50);
params.rightMargin = 15;//设置指示器之间的距离
linearLayout.setGravity(Gravity.CENTER);
linearLayout.addView(radioButton, params);
}
radioViews.get(200 % imgUrl.size()).setChecked(true);//默认第一个选中
this.setAdapter(new Myadapter(imgUrl, getContext()));
setCurrentItem(200);
this.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//修改上一个的状态
radioViews.get(currentPage % imgUrl.size()).setChecked(false);
//更新新的未位置
Log.e("gg", "........" + currentPage);
currentPage = position;
Log.e("gg2", "........" + currentPage);
//修改当前位置指示器的状态
radioViews.get(currentPage % imgUrl.size()).setChecked(true);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
handler.sendEmptyMessageDelayed(0,1000);
}
}