import java.util.ArrayList;
import java.util.List;
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 android.widget.TextView;
import com.example.adapter.MyPageAdapter;
import com.example.bean.Bean2;
import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
public class ShowActivity extends Activity {
private ViewPager vp;
private LinearLayout ll_dots;
private TextView tv_title;
private int position;
private List<ImageView> dots;
private HttpUtils httpUtils;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 0) {
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0, 2000);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
httpUtils = new HttpUtils();
// 找控件
vp = (ViewPager) findViewById(R.id.vp);
ll_dots = (LinearLayout) findViewById(R.id.ll_dots);
tv_title = (TextView) findViewById(R.id.tv_title);
Intent intent = getIntent();
String string = intent.getStringExtra("id");
// position = intent.getIntExtra("ll", 0);
int id = Integer.parseInt(string);
getData(id);
}
private void getData(final int id) {
httpUtils.send(HttpMethod.GET,
"http://mobile.hmeili.com/yunifang/mobile/goods/detail?id="
+ id, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String string = arg0.result;
Gson gson = new Gson();
final Bean2 bean2 = gson.fromJson(string, Bean2.class);
dots = new ArrayList<ImageView>();
dots.clear();
ll_dots.removeAllViews();
for (int i = 0; i < bean2.data.goods.gallery.size(); i++) {
ImageView imageView = new ImageView(
ShowActivity.this);
if (i == 0) {
imageView.setImageResource(R.drawable.focus);
} else {
imageView.setImageResource(R.drawable.noraml);
}
LayoutParams params = new LayoutParams(20, 20);
params.setMargins(5, 0, 5, 0);
dots.add(imageView);
ll_dots.addView(imageView, params);
}
vp.setAdapter(new MyPageAdapter(ShowActivity.this,
bean2, handler));
handler.sendEmptyMessageDelayed(0, 2000);
tv_title.setText(bean2.data.activity.get(position).title);
vp.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageSelected(int arg0) {
for (int j = 0; j < bean2.data.goods.gallery
.size(); j++) {
if (j == arg0 % 4) {
dots.get(j).setImageResource(
R.drawable.focus);
} else {
dots.get(j).setImageResource(
R.drawable.noraml);
}
}
}
public void onPageScrolled(int arg0, float arg1,
int arg2) {
// TODO Auto-generated method stub
}
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
});
}
}
package com.example.adapter;
import android.content.Context;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.bean.Bean2;
import com.example.utils.ImageLoaderUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
public class MyPageAdapter extends PagerAdapter {
private Context context;
private Bean2 bean2;
private Handler handler;
public MyPageAdapter(Context context, Bean2 bean2, Handler handler) {
super();
this.context = context;
this.bean2 = bean2;
this.handler = handler;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
imageView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
handler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_CANCEL:
handler.sendEmptyMessageDelayed(0,2000);
break;
case MotionEvent.ACTION_UP:
handler.sendEmptyMessageDelayed(0,2000);
break;
default:
break;
}
return true;
}
});
DisplayImageOptions options = ImageLoaderUtils.initOptions();
ImageLoader.getInstance().displayImage(
bean2.data.goods.gallery.get(position % 4).normal_url,
imageView, options);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
container.removeView((View) object);
}
}