HttpURLConnection网络解析+universalimageloader解析图片+XListView刷新、加载+无限轮播
来源:互联网 发布:js表格中输入数据 编辑:程序博客网 时间:2024/05/16 03:20
activity_main.xml
<?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.bw.yuekao_lainxi.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"/> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="9" android:orientation="horizontal"> <RadioButton android:id="@+id/rb1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:textSize="20sp" android:text="我的"/> <RadioButton android:id="@+id/rb2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:textSize="20sp" android:text="信息"/> <RadioButton android:id="@+id/rb3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:textSize="20sp" android:text="中心"/> <RadioButton android:id="@+id/rb4" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:textSize="20sp" android:text="我的"/> </RadioGroup></LinearLayout>
fragment1.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/lv" android:layout_width="240sp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#fff" android:choiceMode="singleChoice" android:divider="#f00" android:dividerHeight="1dp" android:entries="@array/books" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="7"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@+id/dotContainer" android:layout_width="match_parent" android:layout_height="40dp" android:layout_alignParentBottom="true" android:gravity="center" android:orientation="horizontal" /> </RelativeLayout> <ListView android:id="@+id/lv1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" /> </LinearLayout></android.support.v4.widget.DrawerLayout>
doc_select.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="10dp" android:height="10dp" /> <solid android:color="#ff0000" /> <corners android:radius="5dp" /></shape>
doc_select_no.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="10dp" android:height="10dp" /> <solid android:color="#00ff00" /> <corners android:radius="5dp" /></shape>
MainActivity
package com.bw.yuekao_lainxi;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.RadioButton;import android.widget.RadioGroup;import com.bw.fragment.Fragment01;import com.bw.fragment.Fragment02;import com.bw.fragment.Fragment03;import com.bw.fragment.Fragment04;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private List<Fragment> listFrag = new ArrayList<>(); private Fragment01 fragment01 = new Fragment01(); private Fragment02 fragment02 = new Fragment02(); private Fragment03 fragment03 = new Fragment03(); private Fragment04 fragment04 = new Fragment04(); private ViewPager pager; private RadioGroup rg; private RadioButton rb1,rb2,rb3,rb4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listFrag.add(fragment01); listFrag.add(fragment02); listFrag.add(fragment03); listFrag.add(fragment04); pager = (ViewPager) findViewById(R.id.pager); rg = (RadioGroup) findViewById(R.id.rg); pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return listFrag.get(position); } @Override public int getCount() { return listFrag.size(); } }); pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position){ case 0: rg.check(R.id.rb1); break; case 1: rg.check(R.id.rb2); break; case 2: rg.check(R.id.rb3); break; case 3: rg.check(R.id.rb4); break; } } @Override public void onPageScrollStateChanged(int state) { } }); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.rb1: pager.setCurrentItem(0); break; case R.id.rb2: pager.setCurrentItem(1); break; case R.id.rb3: pager.setCurrentItem(2); break; case R.id.rb4: pager.setCurrentItem(3); break; } } }); }}Fragment01第一个Fragmentpackage com.bw.fragment;import android.os.AsyncTask;import android.os.Handler;import android.os.Message;import android.support.v4.app.Fragment;import android.support.v4.view.ViewPager;import android.support.v4.widget.DrawerLayout;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.bw.adapter.MyPagerAdapter;import com.bw.bean.ComicsBean;import com.bw.bean.DataBean;import com.bw.bean.SuperClass;import com.bw.utils.NetWork;import com.bw.yuekao_lainxi.R;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;/** * Created by */public class Fragment01 extends Fragment { private static final String JSON = ""; private DrawerLayout drawerLayout; private ListView lv,lv1; private ViewPager viewPager; private MyPagerAdapter pagerAdapter; private List<ComicsBean> listPager; private LinearLayout dotContainer; private NetWork netWork = new NetWork(); private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0){ int currentItem = viewPager.getCurrentItem(); viewPager.setCurrentItem(currentItem+1); handler.sendEmptyMessageDelayed(0,3000); } } }; private List<ImageView> imgList; private List<String> list = new ArrayList<>(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment1, null); lv = (ListView) view.findViewById(R.id.lv); lv1 = (ListView) view.findViewById(R.id.lv1); viewPager = (ViewPager) view.findViewById(R.id.viewPager); dotContainer = (LinearLayout) view.findViewById(R.id.dotContainer); init(); return view; } private void init() { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... params) { String jsonStr = netWork.getStringJson(JSON); return jsonStr; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析数据 SuperClass superClass = new Gson().fromJson(s, SuperClass.class); DataBean data = superClass.getData(); listPager = data.getComics(); list.clear(); for (int i=0;i<listPager.size();i++){ list.add(listPager.get(i).getCover_image_url()); } //初始化小圆点 initDoc(); pagerAdapter = new MyPagerAdapter(getActivity(),list); viewPager.setAdapter(pagerAdapter); viewPager.setCurrentItem(list.size()*10000); handler.sendEmptyMessageDelayed(0,3000); 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<imgList.size();i++){ if (i == position%imgList.size()){ imgList.get(i).setImageResource(R.drawable.doc_select); }else { imgList.get(i).setImageResource(R.drawable.doc_select_no); } } } @Override public void onPageScrollStateChanged(int state) { } }); } }.execute(); } private void initDoc() { imgList = new ArrayList<>(); dotContainer.removeAllViews(); imgList.clear(); for (int i=0;i<list.size();i++){ ImageView imageView = new ImageView(getActivity()); if (i == 0){ imageView.setImageResource(R.drawable.doc_select); }else { imageView.setImageResource(R.drawable.doc_select_no); } //添加到集合 imgList.add(imageView); //添加到线性布局 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); dotContainer.addView(imageView,params); } }}MyPagerAdapter自动轮播适配器package com.bw.adapter;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.view.ViewParent;import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by on 2017/9/21. */public class MyPagerAdapter extends PagerAdapter { private Context context; private List<String> list; public MyPagerAdapter(Context context, List<String> list) { this.context = context; this.list = list; } @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()),imageView); ViewParent parent = imageView.getParent(); if(parent != null){ ViewGroup viewGroup = (ViewGroup) parent; viewGroup.removeAllViews(); } container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}工具类:解析数据package com.bw.utils;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Created by */public class NetWork { //HttpURLConnection解析Json数据 public String getStringJson(String jsonUrl){ //声明 URL url = null; HttpURLConnection httpURLConnection = null; InputStream inputStream = null; String str = ""; try { //获取网址 url = new URL(jsonUrl); //打开网址 httpURLConnection = (HttpURLConnection) url.openConnection(); //获取请求码 int code = httpURLConnection.getResponseCode(); //判断请求码 if (code == 200){ //解析 inputStream = httpURLConnection.getInputStream(); byte[] b = new byte[1024]; int len = 0; //循环解析 while ((len = inputStream.read(b)) != -1){ str += new String(b,0,len); } } } catch (Exception e) { e.printStackTrace(); } finally { if (inputStream != null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return str; }}工具类:解析图片package com.bw.utils;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * Created by */public class ImageWork extends Application { @Override public void onCreate() { super.onCreate(); //创建ImageLoaderConfiguration ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this) .memoryCacheExtraOptions(200,400) .build(); //初始化ImageLoader ImageLoader.getInstance().init(config); }}
阅读全文
0 0
- HttpURLConnection网络解析+universalimageloader解析图片+XListView刷新、加载+无限轮播
- ViewPager网络加载图片+无限轮播
- ImageLoader加载网络图片无限轮播
- 网络加载图片的无限轮播
- XlistView的上拉刷新下拉加载 和Fragment 和无限轮播
- 无限轮播+XListView
- XlistView刷新加载和Banner轮播
- 动漫-无限轮播小圆点+判断网络+网络请求+多条目加载XListView+ImageLoader
- UniversaLimageloader加RollPagerView实现网络加载圆角图片轮播
- ViewPager网络加载图片并无限轮播实现
- ViewPager无限轮播支持加载网络图片
- xlistview+banner无限轮播
- xListView(上拉刷新下拉加载,xml解析)中添加网络请求
- pull解析请求网络的数据(带分页加载,刷新) xlistview HttpUtils
- 无线轮播从网络加载图片 拉取数据get解析
- xml pull 解析 XlistView 上拉加载 下拉刷新
- pull解析XListView上拉加载下拉刷新
- ViewPager加载图片自动无限轮播
- java之刨根问底拦不住------->
- 优秀的前端工程师任务目标和实践
- Matlab 的reshape函数
- 微信小程序 --- 无法跳转到tab页面问题
- 2017第111届中国文化用品商品交易会(2017上海文化展)会刊(参展商名录)
- HttpURLConnection网络解析+universalimageloader解析图片+XListView刷新、加载+无限轮播
- Android RSA加密与SHA256算法工具类
- 嵌入式Linux之安装交叉编译工具链
- 曹可爱之最可爱-Vue.js入门(十)组件2
- 为何short s1 = 1;是对的,而float f=3.4;是错的;
- BZOJ1602: [Usaco2008 Oct]牧场行走
- MD5加密工具类
- GreenDao 3.0简单使用
- 线程池