//继承基类
public class MainActivity extends Actvity_Base {
private ViewPager viewPager;
//轮播图片的网络地址
private String urlViewpager = "http://www.vipandroid.cn/week/banner.txt\n";
private List<String> list = new ArrayList<>();
private MyViewAdapter myViewAdapter;
private int SUCCESS = 1000;
private LinearLayout linearLayout;
@Override
protected void inData() {
//找控件
viewPager = (ViewPager) findViewById(R.id.vp_view_main);
linearLayout = (LinearLayout) findViewById(R.id.ll_layout_main);
doData();
//viewpager的监听事件
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
NewImage(position%list.size());
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void doData() {
//调用工具类实现网络请求
new Helper().get(urlViewpager).result(new Helper.HttpListener() {
@Override
public void http_success(String data) {
Gson gson = new Gson();
BeanViewpager beanViewpager = gson.fromJson(data, BeanViewpager.class);
List<BeanViewpager.Abners> abners = beanViewpager.getAbners();
list.clear();
for (int i = 0; i < abners.size(); i++) {
list.add(abners.get(i).getImage());
}
NewImage(list.size()*10000%list.size());
handler.sendEmptyMessage(SUCCESS);
myViewAdapter = new MyViewAdapter();
viewPager.setAdapter(myViewAdapter);
viewPager.setCurrentItem(list.size()*10000);
}
@Override
public void http_error() {
}
});
}
@Override
public int getLayout() {
return R.layout.activity_main;
}
//创建指示点
private void NewImage(int position){
linearLayout.removeAllViews();
for(int i=0;i<list.size();i++){
ImageView imageView = new ImageView(MainActivity.this);
if(position == i){
imageView.setImageResource(R.drawable.yuan2);
}else{
imageView.setImageResource(R.drawable.yuan1);
}
linearLayout.addView(imageView);
LinearLayout.LayoutParams ll= (LinearLayout.LayoutParams) imageView.getLayoutParams();
ll.width=15;
ll.height=15;
ll.leftMargin=8;
imageView.setLayoutParams(ll);
}
}
//viewpager的适配器
private class MyViewAdapter 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(list.get(position%list.size()), imageView);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
//Handler
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == SUCCESS){
int currentItem = viewPager.getCurrentItem();
currentItem++;
viewPager.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(SUCCESS,2000);
}
}
};
}
================布局文件==============================================
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_300">
<android.support.v4.view.ViewPager
android:id="@+id/vp_view_main"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_300"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="@dimen/dp_20"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:id="@+id/ll_layout_main">
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_20"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_margin="@dimen/dp_10"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape"
android:id="@+id/bt_news_main"
android:text="新闻"/>
<Button
android:layout_width="0dp"
android:layout_margin="@dimen/dp_10"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape"
android:id="@+id/bt_item_main"
android:text="多条目"/>
<Button
android:layout_width="0dp"
android:layout_margin="@dimen/dp_10"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape"
android:id="@+id/bt_data_main"
android:text="数据缓存"/>
</LinearLayout>
</LinearLayout>##