public class MainActivity extends AppCompatActivity { private ViewPager pager; private LinearLayout linearLayout; private GridView gridView; private ArrayList<ImageView> images; private List<NewBean.DataBean.EssayBean> list; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ int currentItem = pager.getCurrentItem(); pager.setCurrentItem(currentItem+1); handler.sendEmptyMessageDelayed(0,2000); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pager = (ViewPager) findViewById(R.id.view_pager); linearLayout = (LinearLayout) findViewById(R.id.linear); gridView = (GridView) findViewById(R.id.gridview); getHuoQv(); } private void getHuoQv() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { String path="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android"; @Override protected String doInBackground(Void... params) { try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int responseCode = connection.getResponseCode(); if(responseCode==200){ InputStream inputStream = connection.getInputStream(); String json=streamToString(inputStream,"UTF-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { super.onPostExecute(json); Gson gson = new Gson(); NewBean newBean = gson.fromJson(json, NewBean.class); list = newBean.getData().getEssay(); MyAdapter myAdapter = new MyAdapter(MainActivity.this, list,handler); pager.setAdapter(myAdapter); GridviewAdapter gridviewAdapter = new GridviewAdapter(MainActivity.this, list); gridView.setAdapter(gridviewAdapter); initDoc(); pager.setCurrentItem(list.size()*10000); handler.sendEmptyMessageDelayed(0 , 2000); pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //如果选中了这一页,,,当前小圆点红色,,,否则绿色 for (int i = 0;i<images.size();i++){ if (i== position%images.size()){ images.get(i).setImageResource(R.drawable.xiaoyuandian_yes); }else { images.get(i).setImageResource(R.drawable.xiaoyuandian_no); } } } @Override public void onPageScrollStateChanged(int state) { } }); } }; asyncTask.execute(); } private void initDoc() { //首先需要一个集合记录这些小圆点的图片,,,,当页面切换的时候,可以从集合中取出imageView进行显示图片的设置 images = new ArrayList<>(); linearLayout.removeAllViews();//清空/移除所有的view for (int i = 0;i<list.size();i++){ ImageView imageView = new ImageView(MainActivity.this); if (i==0){//显示第一页,,,红的 imageView.setImageResource(R.drawable.xiaoyuandian_yes); }else {//绿的 imageView.setImageResource(R.drawable.xiaoyuandian_no); } //添加到集合 images.add(imageView); //加入到线性布局中显示 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); linearLayout.addView(imageView,params); } } private String streamToString(InputStream inputStream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuilder builder = new StringBuilder(); String string = null; while ((string=bufferedReader.readLine()) != null){ builder.append(string); } bufferedReader.close(); Log.i("builder" , "builder---->" + builder.toString()); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }public class GridviewAdapter extends BaseAdapter{ Context context; List<NewBean.DataBean.EssayBean> list; public GridviewAdapter(Context context, List<NewBean.DataBean.EssayBean> list) { this.context=context; this.list=list; ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context)); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null){ convertView=View.inflate(context,R.layout.gridview_item,null); holder=new ViewHolder(); holder.textView= (TextView) convertView.findViewById(R.id.text); holder.imageView= (ImageView) convertView.findViewById(R.id.image); convertView.setTag(holder); }else{ holder= (ViewHolder) convertView.getTag(); } holder.textView.setText(list.get(position).getHp_title()); ImageLoader.getInstance().displayImage(list.get(position).getAuthor().get(0).getWeb_url() , holder.imageView , getOption()); return convertView; } public DisplayImageOptions getOption() { DisplayImageOptions imageOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.mipmap.ic_launcher) .showImageOnFail(R.mipmap.ic_launcher) .showImageOnLoading(R.mipmap.ic_launcher) .cacheInMemory(true) .cacheOnDisk(true) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) .resetViewBeforeLoading(true)//在加载之前复位一下显示 .bitmapConfig(Bitmap.Config.RGB_565)//图片的质量 .considerExifParams(true)//是否考虑JPEG图像EXIF参数(旋转,翻转) .build(); return imageOptions; } class ViewHolder{ ImageView imageView; TextView textView; } }public class MyAdapter extends PagerAdapter{ Context context; List<NewBean.DataBean.EssayBean> list; Handler handler; public MyAdapter(Context context, List<NewBean.DataBean.EssayBean> list, Handler handler) { this.context=context; this.list=list; this.handler=handler; ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context)); } @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) { ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list.get(position%list.size()).getAuthor().get(0).getWeb_url(),imageView); imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { boolean isTiaozhuan = true; switch (event.getAction()){ case MotionEvent.ACTION_DOWN://按下 Log.i("-----" , "ACTION_DOWN"); handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_MOVE://移动 Log.i("-----" , "ACTION_MOVE"); isTiaozhuan = false; handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_CANCEL://取消 Log.i("-----" , "ACTION_CANCEL"); isTiaozhuan = false; handler.sendEmptyMessageDelayed(0 , 2000); break; case MotionEvent.ACTION_UP://抬起 Log.i("-----" , "ACTION_UP"); if (isTiaozhuan){ Toast.makeText(context , "跳转页面" , Toast.LENGTH_SHORT).show(); // Intent intent = new Intent(context , WebActivity.class); // intent.putExtra("url" , list.get(position%list.size()).getUrl()); // context.startActivity(intent); } handler.sendEmptyMessageDelayed(1 , 2000); break; default: break; } return true; } }); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="200dp"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/view_pager" android:layout_above="@+id/gridview"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/view_pager" android:layout_marginBottom="20dp" android:layout_alignParentRight="true" android:orientation="horizontal" android:layout_above="@+id/gridview" ></LinearLayout> </RelativeLayout> <GridView android:gravity="center" android:numColumns="2" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/gridview"></GridView> </LinearLayout><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="170dp" android:layout_height="170dp" android:id="@+id/image" android:src="@mipmap/ic_launcher"/> <TextView android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="askfhsjdshdfn" android:id="@+id/text"/> </LinearLayout>
无线轮播
最新推荐文章于 2021-05-28 19:49:40 发布