无限轮播
来源:互联网 发布:淘宝宝贝图片怎么拍照 编辑:程序博客网 时间:2024/06/08 16:53
package test.bwie.com.zhoukao;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.GridView;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.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { String p="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android"; private ViewPager viewPager; private LinearLayout linearLayout; private GridView gridView; private List<Bean.DataBean.EssayBean> list; private List<ImageView> views; private Handler handler= new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int num=msg.what; switch (num){ case 1: int currentItem = viewPager.getCurrentItem(); currentItem++; viewPager.setCurrentItem(currentItem); cc(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.vp); linearLayout = (LinearLayout) findViewById(R.id.ll); gridView = (GridView) findViewById(R.id.gv); new Thread(){ private ByteArrayOutputStream baos; @Override public void run() { try { URL url= new URL(p); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); int responseCode = connection.getResponseCode(); baos = new ByteArrayOutputStream(); if (responseCode==200){ InputStream inputStream= connection.getInputStream(); byte[] bytes= new byte[1024]; int len; while( (len=inputStream.read(bytes))!=-1){ baos.write(bytes,0,len); } runOnUiThread(new Runnable() { @Override public void run() { Gson gson= new Gson(); Bean bean = gson.fromJson(baos.toString(), Bean.class); //int bean; list = bean.getData().getEssay(); //适配器 MyAdapter adapter= new MyAdapter(); viewPager.setAdapter(adapter); aa(); bb(); cc(); dd(); } }); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } class MyAdapter 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 imageView= new ImageView(MainActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list.get(position%list.size()).getAuthor().get(0).getWeb_url(),imageView); container.addView(imageView); return imageView ; } } //画圆点 private void aa(){ views = new ArrayList<>(); if (views!=null){ views.clear(); } for (int x=0;x<list.size();x++){ ImageView imageView= new ImageView(MainActivity.this); LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(10,10); params.setMargins(10,0,10,0); linearLayout.addView(imageView,params); views.add(imageView); } } //滑动监听 private void bb(){ viewPager.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 <views.size() ; i++) { if (position%list.size()==i){ views.get(position%list.size()).setImageResource(R.drawable.yes_fint); }else{ views.get(i).setImageResource(R.drawable.no_fint); } } } @Override public void onPageScrollStateChanged(int state) { } }); } private void cc(){ handler.sendEmptyMessageDelayed(1,2000); } private void dd(){ MyAdp adp= new MyAdp(); gridView.setAdapter(adp); } class MyAdp extends BaseAdapter{ @Override public int getCount() { return list.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.layout,null); } ImageView imageView= (ImageView)convertView.findViewById(R.id.vv); TextView textView= (TextView) convertView.findViewById(R.id.tv); ImageLoader.getInstance().displayImage(list.get(position).getAuthor().get(0).getWeb_url(),imageView); textView.setText(list.get(position).getAuthor().get(0).getUser_name()); return convertView; } }}//Application里的内容package test.bwie.com.zhoukao;import android.app.Application;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;/** * Created by dellll on 2017.08.22. */public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); String path = Environment.getExternalStorageDirectory() + "/aa"; File file= new File(path); ImageLoaderConfiguration configuration= new ImageLoaderConfiguration.Builder(this) .diskCache( new UnlimitedDiskCache(file)).build(); ImageLoader.getInstance().init(configuration); }}
别忘了导包,加权限
阅读全文
0 0
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 无限轮播
- 图片无限轮播
- 无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 无线轮播+小圆点
- LinkedList源码详解
- [难度:容易] 先根和中根构建二叉树
- mybatis if字符串相等判断。。
- MongoDB学习笔记(索引)
- 无限轮播
- 9.4 边缘概率
- Parquet与ORC性能测试报告
- Day10-32.Common pitfalls when using operators
- Semaphore实现信号灯
- Android_Sqlbrite入门使用
- 各大网站CSS代码初始化集合
- MongoDB学习笔记(查询)
- android 一个Apk启动另一个Apk