import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import com.bawei.test.adapter.ViewPagerAdapter;
import com.bawei.test.bean.Data;
import com.bawei.test.bean.Like;
public class TwoActivity extends Activity {
private ViewPager vp;
private LinearLayout ll;
private ArrayList<Like> list;
ArrayList<ImageView> views = new ArrayList<ImageView>();
//handler实现ViewPager轮播
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
int item = vp.getCurrentItem();
item++;
vp.setCurrentItem(item);
handler.sendEmptyMessageDelayed(0, 1800);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
//获取第一个页面传来的值
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
Data data = (Data) bundle.getSerializable("data");
//获得所需控件
vp = (ViewPager) findViewById(R.id.vp);
ll = (LinearLayout) findViewById(R.id.ll);
list = data.like_user_list;
//初始化小圆点
init();
//ViewPager加载适配器
vp.setAdapter(new ViewPagerAdapter(list, this));
//ViewPager监听
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
if (i == arg0%views.size()) {
views.get(i).setImageResource(R.drawable.selected);
} else {
views.get(i).setImageResource(R.drawable.select);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
handler.sendEmptyMessageDelayed(0, 1800);
}
//小圆点的方法
private void init() {
for (int i = 0; i < list.size(); i++) {
ImageView view = new ImageView(this);
if (i == 0) {
view.setImageResource(R.drawable.selected);
} else {
view.setImageResource(R.drawable.select);
}
LayoutParams params = new LayoutParams(10, 10);
params.setMargins(10, 10, 10, 10);
ll.addView(view, params);
views.add(view);
}
}
}
import java.util.ArrayList;
import com.bawei.test.bean.Like;
import com.lidroid.xutils.BitmapUtils;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
/**
* ViewPager适配器类
* */
public class ViewPagerAdapter extends PagerAdapter {
ArrayList<Like>list;
Context context;
public ViewPagerAdapter(ArrayList<Like> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
/**
*
* 请求数据的工具类
* */
public class HttpUtil {
public static String getJson(String uri){
String json="";
try {
URL url=new URL(uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream is = conn.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(is));
String line;
while( (line=reader.readLine())!=null ){
json+=line;
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return json;
}
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
ImageView view=new ImageView(context);
view.setScaleType(ScaleType.FIT_XY);
BitmapUtils bitmapUtils=new BitmapUtils(context);
bitmapUtils.display(view, list.get(position%list.size()).head_img);
container.addView(view);
return view;
}
res/drawable
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="20dp"
android:id="@+id/ll"
android:orientation="horizontal"
android:gravity="center"
android:layout_alignParentBottom="true">
</LinearLayout>
</RelativeLayout>
res/values/dimes
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <size android:width="5dp"
android:height="5dp"
/>
<solid android:color="#c00"/>
<stroke android:color="#0f0"
android:dashWidth="5dp"
android:dashGap="0dp"/>
<padding android:left="5dp"
android:right="5dp"/> -->
<corners android:radius="8dp"/>
<solid android:color="#c00"/>
</shape>