package com.example.lxb2017917; import android.content.Intent; import android.os.Bundle; 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.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ViewPager vp; List<User_viewpager> list=new ArrayList<User_viewpager>(); Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int i = vp.getCurrentItem() + 1; vp.setCurrentItem(i); handler.sendEmptyMessageDelayed(0,2000); } }; private ArrayList<ImageView> imagelist; private LinearLayout ll; private ImageView view; private Button bt; @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); bt =(Button)findViewById(R.id.bt); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); new Thread(){ private StringBuilder builder; private URL url; @Override public void run() { super.run(); try { url =new URL("http://apis.juhe.cn/cook/query?key=dd452181a9ca8ee5710d153538a4b8d6&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=1"); URLConnection connection = url.openConnection(); InputStream stream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); builder = new StringBuilder(); String tem=""; while((tem=reader.readLine())!=null){ builder.append(tem); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Log.e("==========读取出来的数据===============",builder.toString()); runOnUiThread(new Runnable() { private List<Bean.ResultBean.DataBean.StepsBean> steps; @Override public void run() { //解析n Gson gson = new Gson(); Bean json = gson.fromJson(builder.toString(), Bean.class); List<Bean.ResultBean.DataBean> data = json.getResult().getData(); for (int i=0;i<data.size();i++){ steps = data.get(i).getSteps(); } for (int j = 0; j<5; j++){ String img = steps.get(j).getImg(); String step = steps.get(j).getStep(); list.add(new User_viewpager(img,step)); } Log.e("==========viewpager解析出来的数据===============",list.toString()); //无限轮播的适配器 nodata(); vp.setAdapter(new mydata()); vp.setCurrentItem(10000); handler.sendEmptyMessageDelayed(0,2000); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<imagelist.size();i++){ if(position%list.size()==i){ imagelist.get(position%list.size()).setImageResource(R.drawable.dot_focus); }else{ imagelist.get(i).setImageResource(R.drawable.dot_normal); } } } @Override public void onPageScrollStateChanged(int state) { } }); } }); } }.start(); } //无限轮播的适配器 class mydata 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) { View view = View.inflate(MainActivity.this, R.layout.viewpager, null); ImageView img=(ImageView)view.findViewById(R.id.img); TextView name=(TextView)view.findViewById(R.id.name); name.setText(list.get(position%list.size()).name); ImageLoader.getInstance().displayImage(list.get(position%list.size()).img,img); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } } private void nodata() { imagelist =new ArrayList<ImageView>(); if(imagelist!=null){ imagelist.clear(); } for (int i=0;i<list.size();i++){ view = new ImageView(this); if(i==vp.getCurrentItem()){ view.setImageResource(R.drawable.dot_focus); }else{ view.setImageResource(R.drawable.dot_normal); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(10,0,10,0); imagelist.add(view); ll.addView(view,params); } } }
08-30