<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bbb.bwie.com.zhoukao3lx.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp"> </android.support.v4.view.ViewPager> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:layout_height="wrap_content"> <RadioGroup android:id="@+id/rg" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/b1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b5" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b6" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b7" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b8" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b9" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b10" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> </LinearLayout> <GridView android:id="@+id/gv" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="2" > </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:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>import android.app.AlertDialog; import android.content.DialogInterface; 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.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.RadioGroup; 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 { int[] i={R.id.b1,R.id.b2,R.id.b3,R.id.b4,R.id.b5,R.id.b6,R.id.b7,R.id.b8,R.id.b9,R.id.b10};//Radiobutoon的控件 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 ViewPager vp; private RadioGroup rg; private GridView gv; private StringBuilder builder; private mydata2 mydata2; private MainActivity.mydata2.ViewHolder vh; List<Bean02> lists=new ArrayList<Bean02>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); rg = (RadioGroup) findViewById(R.id.rg); gv = (GridView) findViewById(R.id.gv); //读取数据 new Thread(){ @Override public void run() { super.run(); try { //获取url对象 URL url = new URL("http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android"); try { URLConnection connection = url.openConnection(); InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String tem=""; while((tem=reader.readLine())!=null){ builder.append(tem); } Log.e("==============",builder.toString()); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } //获取json runOnUiThread(new Runnable() { @Override public void run() { Gson gson = new Gson(); Bean json = gson.fromJson(builder.toString(), Bean.class); Bean.DataBean data = json.getData(); List<Bean.DataBean.EssayBean> essay = data.getEssay(); for(int i =0;i<essay.size();i++){ List<Bean.DataBean.EssayBean.AuthorBean> author = essay.get(i).getAuthor(); for (int j=0;j<author.size();j++){ String user_name = author.get(j).getUser_name(); String web_url = author.get(j).getWeb_url(); lists.add(new Bean02(user_name,web_url)); } } vp.setAdapter(new mydata()); vp.setCurrentItem(10000*lists.size()); handler.sendEmptyMessageDelayed(0,2000); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { rg.check(i[position% lists.size()]); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); //GridView mydata2 = new mydata2(); gv.setAdapter(mydata2); } }); } }.start(); } class mydata2 extends BaseAdapter{ private View view; @Override public int getCount() { return Integer.MAX_VALUE; } @Override public Object getItem(int i) { return lists.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if(view==null){ vh = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.textview, null); vh.img=(ImageView) view.findViewById(R.id.img); vh.name=(TextView)view.findViewById(R.id.name); view.setTag(vh); }else{ vh= (ViewHolder) view.getTag(); } ImageLoader.getInstance().displayImage(lists.get(i%lists.size()).url,vh.img); vh.name.setText(lists.get(i%lists.size()).name); return view; } class ViewHolder{ ImageView img; TextView name; } } 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 void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } @Override public Object instantiateItem(ViewGroup container, int position) { View view = View.inflate(MainActivity.this, R.layout.textview, null); ImageView img = (ImageView) view.findViewById(R.id.img); TextView name = (TextView) view.findViewById(R.id.name); ImageLoader.getInstance().displayImage(lists.get(position%lists.size()).url,img); name.setText(lists.get(position%lists.size()).name); container.addView(view); return view; } } } Bean类自动解析public class Bean02 { public String name; public String url; public Bean02(String name, String url) { this.name = name; this.url = url; } @Override public String toString() { return "Bean02{" + "name='" + name + '\'' + ", url='" + url + '\'' + '}'; } }import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * Created by HQ on 2017/9/14. */import android.app.Application; import android.os.Environment; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; /** * Created by HQ on 2017/9/14. */ public class Appi extends Application { @Override public void onCreate() { DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher).cacheInMemory(true) .cacheOnDisk(true).displayer(new FadeInBitmapDisplayer(1500)) .build(); ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder( this).memoryCacheExtraOptions(480, 800) .diskCache(new UnlimitedDiskCache(Environment.getExternalStorageDirectory())) .memoryCacheSize(2 * 1024 * 1024) .diskCacheFileNameGenerator(new Md5FileNameGenerator()) .defaultDisplayImageOptions(options).build(); ImageLoader.getInstance().init(configs); } }//权限<uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>android:name=".Appi"
ViewPager自动轮播+GridView展示+缓存到id
最新推荐文章于 2022-10-13 07:26:34 发布