import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private ViewPager vp;
private LinearLayout ll;
private XListView xlv;
private List<Bean.DataBean.AdlistBean> adlist;
private ImageView iv;
private LinearLayout.LayoutParams params;
private List<ImageView> ivlist;
private Adapter ad;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int what = msg.what;
switch (what){
case 0:
String s = (String) msg.obj;
JsonData(s);
break;
case 1:
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
sendMsg();
break;
case 2:
ad.notifyDataSetChanged();
close();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
ll = (LinearLayout) findViewById(R.id.ll);
xlv = (XListView) findViewById(R.id.xlv);
new Thread(){
@Override
public void run() {
super.run();
String json = Util.getJson();
Message msg = new Message();
msg.obj = json;
msg.what=0;
handler.sendMessage(msg);
}
}.start();
}
private void JsonData(String s) {
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
adlist = bean.getData().getAdlist();
MyAdapter adapter = new MyAdapter(adlist,MainActivity.this);
vp.setAdapter(adapter);
//xlistview展示
xlist();
//初始化点
initDot();
vp.setCurrentItem(10000);
sendMsg();
ViewpagerListener();
}
private void xlist(){
xlv.setPullRefreshEnable(true);
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(this);
ad = new Adapter(adlist,MainActivity.this);
xlv.setAdapter(ad);
}
private void ViewpagerListener() {
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int x=0;x<ivlist.size();x++){
if (position%ivlist.size()==x){
ivlist.get(position%ivlist.size()).setImageResource(R.drawable.dot);
}else {
ivlist.get(x).setImageResource(R.drawable.dot_color);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void initDot() {
ivlist = new ArrayList<>();
if (ivlist != null){
ivlist.clear();
}
for (int x=0;x<adlist.size();x++){
iv = new ImageView(MainActivity.this);
if (x==0){
iv.setImageResource(R.drawable.dot);
}else {
iv.setImageResource(R.drawable.dot_color);
}
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
ivlist.add(iv);
}
}
//轮播
public void sendMsg(){
handler.sendEmptyMessageDelayed(1,2000);
}
//关闭
private void close() {
xlv.stopLoadMore();
xlv.stopRefresh();
}
//下拉
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
adlist.add(0,adlist.get(1));
handler.sendEmptyMessage(2);
}
},2000);
}
//上拉下拉
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
adlist.add(adlist.get(2));
handler.sendEmptyMessage(2);
}
},2000);
}
}