package com.liulailin.month;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bwei.utils.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import static android.view.View.inflate;
import static com.liulailin.month.R.id.vp;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private List<Bean.DataBean.HotcategoryBean> hotcategory;
private List<Bean.DataBean.AdlistBean> adlist;
private DisplayImageOptions options;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的position
int position = vp.getCurrentItem();
position++;
vp.setCurrentItem(position);
sendMsg();
}
};
private ViewPager vp;
private List<ImageView> listIV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//sd卡
options = new DisplayImageOptions.Builder()
.cacheOnDisk(true) //sd卡
.cacheInMemory(true)
.build();
xlv = (XListView) findViewById(R.id.xlv);
initData();
}
/**
* 请求网络得数据
*/
private void initData() {
new AsyncTask<String,Void,String>(){
/**
* 子线程
* @param params
* @return
*/
@Override
protected String doInBackground(String... params) {
String json = NetWorkUtils.getJson(params[0]);
return json;
}
/**
* 主线程
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
//展示viewPager上面的图片的
adlist = bean.getData().getAdlist();
//展示xListView上面的数据
hotcategory = bean.getData().getHotcategory();
xlv.setAdapter(new MyAdapter());
xlv.setXListViewListener(MainActivity.this);
//viewpager的布局
View view =View.inflate(MainActivity.this, R.layout.vp_item,null);
ll = (LinearLayout) view.findViewById(R.id.ll);
vp = (ViewPager) view.findViewById(R.id.vp);
//给xlistView加载头布局
xlv.addHeaderView(view);
vp.setAdapter(new MyPagerAdapter());
//初使化点
initDot();
vp.setCurrentItem(10000);
//无限轮博
sendMsg();
//监听事件
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<listIV.size();x++){
if (position%adlist.size()==x){
listIV.get(position%adlist.size()).setImageResource(R.drawable.dot_focus);
}else{
listIV.get(x).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}.execute(path);
}
/*8
无限轮博的方法
*/
private void sendMsg() {
handler.sendEmptyMessageDelayed(0,2000);
}
/**
*
*/
private void initDot() {
listIV = new ArrayList<>();
if (listIV !=null){
listIV.clear();
}
for (int x =0;x<adlist.size();x++){
ImageView iv = new ImageView(MainActivity.this);
if (x==0){
iv.setImageResource(R.drawable.dot_focus);
}else{
iv.setImageResource(R.drawable.dot_normal);
}
listIV.add(iv);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
/**
* 下拉刷新
*/
@Override
public void onRefresh() {
new Thread(){
@Override
public void run() {
super.run();
String json = NetWorkUtils.getJson(path);
Gson gson = new Gson();
Bean bean = gson.fromJson(json, Bean.class);
//展示viewPager上面的图片的
adlist = bean.getData().getAdlist();
//展示xListView上面的数据
List hotcategory1 = bean.getData().getHotcategory();
hotcategory.addAll(hotcategory1);
//没做完,需要重新设置adapter
}
}.start();
}
/**
* 加载更多
*/
@Override
public void onLoadMore() {
}
class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv = new ImageView(MainActivity.this);
//加载viewPager上面的图片
ImageLoader.getInstance().displayImage(adlist.get(position%adlist.size()).getImg(),iv,options);
container.addView(iv);
return iv;
}
}
/**
* xListView的adapter
*/
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return hotcategory.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null) {
convertView = View.inflate(MainActivity.this, R.layout.xlv_item, null);
}
ImageView xlv_iv = (ImageView) convertView.findViewById(R.id.xlv_iv);
TextView xlv_tv = (TextView) convertView.findViewById(R.id.xlv_tv);
//展示图片
ImageLoader.getInstance().displayImage(hotcategory.get(position).getImg(),xlv_iv,options);
//文字
xlv_tv.setText(hotcategory.get(position).getCname());
return convertView;
}
}
}
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bwei.utils.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import static android.view.View.inflate;
import static com.liulailin.month.R.id.vp;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private List<Bean.DataBean.HotcategoryBean> hotcategory;
private List<Bean.DataBean.AdlistBean> adlist;
private DisplayImageOptions options;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的position
int position = vp.getCurrentItem();
position++;
vp.setCurrentItem(position);
sendMsg();
}
};
private ViewPager vp;
private List<ImageView> listIV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//sd卡
options = new DisplayImageOptions.Builder()
.cacheOnDisk(true) //sd卡
.cacheInMemory(true)
.build();
xlv = (XListView) findViewById(R.id.xlv);
initData();
}
/**
* 请求网络得数据
*/
private void initData() {
new AsyncTask<String,Void,String>(){
/**
* 子线程
* @param params
* @return
*/
@Override
protected String doInBackground(String... params) {
String json = NetWorkUtils.getJson(params[0]);
return json;
}
/**
* 主线程
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
//展示viewPager上面的图片的
adlist = bean.getData().getAdlist();
//展示xListView上面的数据
hotcategory = bean.getData().getHotcategory();
xlv.setAdapter(new MyAdapter());
xlv.setXListViewListener(MainActivity.this);
//viewpager的布局
View view =View.inflate(MainActivity.this, R.layout.vp_item,null);
ll = (LinearLayout) view.findViewById(R.id.ll);
vp = (ViewPager) view.findViewById(R.id.vp);
//给xlistView加载头布局
xlv.addHeaderView(view);
vp.setAdapter(new MyPagerAdapter());
//初使化点
initDot();
vp.setCurrentItem(10000);
//无限轮博
sendMsg();
//监听事件
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<listIV.size();x++){
if (position%adlist.size()==x){
listIV.get(position%adlist.size()).setImageResource(R.drawable.dot_focus);
}else{
listIV.get(x).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}.execute(path);
}
/*8
无限轮博的方法
*/
private void sendMsg() {
handler.sendEmptyMessageDelayed(0,2000);
}
/**
*
*/
private void initDot() {
listIV = new ArrayList<>();
if (listIV !=null){
listIV.clear();
}
for (int x =0;x<adlist.size();x++){
ImageView iv = new ImageView(MainActivity.this);
if (x==0){
iv.setImageResource(R.drawable.dot_focus);
}else{
iv.setImageResource(R.drawable.dot_normal);
}
listIV.add(iv);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
/**
* 下拉刷新
*/
@Override
public void onRefresh() {
new Thread(){
@Override
public void run() {
super.run();
String json = NetWorkUtils.getJson(path);
Gson gson = new Gson();
Bean bean = gson.fromJson(json, Bean.class);
//展示viewPager上面的图片的
adlist = bean.getData().getAdlist();
//展示xListView上面的数据
List hotcategory1 = bean.getData().getHotcategory();
hotcategory.addAll(hotcategory1);
//没做完,需要重新设置adapter
}
}.start();
}
/**
* 加载更多
*/
@Override
public void onLoadMore() {
}
class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv = new ImageView(MainActivity.this);
//加载viewPager上面的图片
ImageLoader.getInstance().displayImage(adlist.get(position%adlist.size()).getImg(),iv,options);
container.addView(iv);
return iv;
}
}
/**
* xListView的adapter
*/
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return hotcategory.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null) {
convertView = View.inflate(MainActivity.this, R.layout.xlv_item, null);
}
ImageView xlv_iv = (ImageView) convertView.findViewById(R.id.xlv_iv);
TextView xlv_tv = (TextView) convertView.findViewById(R.id.xlv_tv);
//展示图片
ImageLoader.getInstance().displayImage(hotcategory.get(position).getImg(),xlv_iv,options);
//文字
xlv_tv.setText(hotcategory.get(position).getCname());
return convertView;
}
}
}