Img布局
public class Imgtion extends Application{ @Override public void onCreate() { DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.a) .showImageOnFail(R.drawable.b) .showImageForEmptyUri(R.drawable.s) .displayer(new FadeInBitmapDisplayer(2000)) .cacheOnDisk(true) .cacheInMemory(true) .build(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this) .defaultDisplayImageOptions(options) .threadPoolSize(5).build(); ImageLoader.getInstance().init(configuration); super.onCreate(); } }NewsFragment页面
public class NewsFragment extends Fragment{ private int count=10; PullToRefreshLayout pull; private ListView lv; private String jsonString=""; private Massd massd; private List<Newslist> datas = new ArrayList<Newslist>(); //handle机制 private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Massd massd = new Massd(); lv.setAdapter(massd); } }; private String string; @Nullable @Override //页面加载视图 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view= inflater.inflate(R.layout.news_layout,container,false); pull = (PullToRefreshLayout) view.findViewById(R.id.pull); lv = (ListView) view.findViewById(R.id.list_view); pull.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { count++; String path = "http://api.tianapi.com/" + string + "/?key=4146a52d31ee75bedb005c5b50d9c249&num="+count; getDataFromNet(string); pull.finishRefresh(); } },2000); } //上拉 @Override public void loadMore() { new Handler().postDelayed(new Runnable() { @Override public void run() { count++; String path = "http://api.tianapi.com/" + string + "/?key=4146a52d31ee75bedb005c5b50d9c249&num="+count; getDataFromNet(string); pull.finishLoadMore(); } },2000); } }); return view; } //网络请求 private void getDataFromNet(final String string) { new Thread(){ @Override public void run() { String path = "http://api.tianapi.com/"+string+"/?key=4146a52d31ee75bedb005c5b50d9c249&num="+(count++); 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=getwangl(inputStream,"utf-8"); Gson gson = new Gson(); JsonRootBean jsonss = gson.fromJson(json, JsonRootBean.class); datas=jsonss.getNewslist(); Message message = new Message(); Bundle bundle = new Bundle(); bundle.putString("s",datas.toString()); message.setData(bundle); handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } //进行转码关闭流 private String getwangl(InputStream inputStream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s); BufferedReader reader = new BufferedReader(inputStreamReader); StringBuilder builder = new StringBuilder(); String cou; while ((cou=reader.readLine())!=null){ builder.append(cou); } inputStream.close(); reader.close(); jsonString=builder.toString(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } //创建主视图 @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); string = bundle.getString("name", "top"); getDataFromNet(string); } //适配器 class Massd extends BaseAdapter{ final int tz=0; final int tx=1; @Override public int getCount() { return datas.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override //listview多条目加载 public View getView(int i, View view, ViewGroup viewGroup) { Asd asd = null; Asdd asdd = null; int type = getItemViewType(i); if (view==null){ switch (type){ case tz: asd = new Asd(); view = View.inflate(getActivity(), R.layout.item, null); asd.img = (ImageView) view.findViewById(R.id.img); asd.tv1 = (TextView) view.findViewById(R.id.tv1); asd.tv2 = (TextView) view.findViewById(R.id.tv2); view.setTag(asd); break; case tx: asdd = new Asdd(); view = View.inflate(getActivity(), R.layout.item2, null); asdd.img1 = (ImageView) view.findViewById(R.id.img1); asdd.img2 = (ImageView) view.findViewById(R.id.img2); asdd.img3 = (ImageView) view.findViewById(R.id.img3); view.setTag(asdd); break; } }switch (type){ case tz: asd = (Asd) view.getTag(); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(), asd.img); asd.tv1.setText(datas.get(i).getTitle()); asd.tv2.setText(datas.get(i).getCtime()); break; case tx: asdd = (Asdd) view.getTag(); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(), asdd.img1); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(), asdd.img2); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(), asdd.img3); break; default: break; } return view; } } //优化 class Asdd{ public ImageView img1; public ImageView img2; public ImageView img3; } class Asd{ public ImageView img; public TextView tv1; public TextView tv2; } }QiYuF页面
public class QiyuF extends Fragment implements AdapterView.OnItemClickListener{ TabLayout tl; ViewPager vp; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.qiyuf, null); tl = (TabLayout) view.findViewById(R.id.tl); vp = (ViewPager) view.findViewById(R.id.vp); list = new ArrayList<>(); list.add("苹果"); list.add("军事"); list.add("移动"); list.add("旅游"); list.add("创业"); list.add("科技"); list.add("足球"); list.add("NBA"); list.add("娱乐"); vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public CharSequence getPageTitle(int position) { return list.get(position); } @Override // apple military mobile travel startup keji football nba huabian public Fragment getItem(int position) { NewsFragment newsFragment = new NewsFragment(); Bundle bundle = new Bundle(); if (list.get(position).equals("苹果")){ bundle.putString("name","apple"); }else if (list.get(position).equals("军事")){ bundle.putString("name","military"); }else if (list.get(position).equals("移动")){ bundle.putString("name","mobile"); }else if (list.get(position).equals("旅游")){ bundle.putString("name","travel"); }else if (list.get(position).equals("创业")){ bundle.putString("name","startup"); }else if (list.get(position).equals("科技")){ bundle.putString("name","keji"); }else if (list.get(position).equals("足球")){ bundle.putString("name","football"); }else if (list.get(position).equals("NBA")){ bundle.putString("name","nba"); }else if (list.get(position).equals("娱乐")){ bundle.putString("name","huabian"); } newsFragment.setArguments(bundle); return newsFragment; } @Override public int getCount() { return list.size(); } }); tl.setupWithViewPager(vp); return view; } @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { } }ShouyeF页面
public class ShouyeF extends Fragment implements AdapterView.OnItemClickListener { //定义全局变量 PullToRefreshLayout prl; ConvenientBanner cb; private int count=10; private List<String> as; private List<Newslist> datas = new ArrayList<Newslist>(); private Handler handler = new Handler(){ //handle机制 @Override public void handleMessage(Message msg) { Maasd maasd = new Maasd(); gv.setAdapter(maasd); Mmasd mmasd = new Mmasd(); lv.setAdapter(mmasd); } }; //添加轮播的图片 ImageLoader imageLoader; Arrays arrays; //定义数组 String[] imgs = new String[]{ "http://m.xxxiao.com/wp-content/uploads/sites/3/2015/04/m.xxxiao.com_952ef7f7e44e4bdaf7718d20c99d66ff4-760x500.jpg", "http://m.xxxiao.com/wp-content/uploads/sites/3/2015/07/m.xxxiao.com_d425b67b2744d9f62be091b2bb3c9d93-760x500.jpg", "http://m.xxxiao.com/wp-content/uploads/sites/3/2015/04/m.xxxiao.com_6bb61e3b7bce0931da574d19d1d82c886-760x500.jpg", "http://m.xxxiao.com/wp-content/uploads/sites/3/2015/06/m.xxxiao.com_b4524af8c20484f4638795ea1515db29-760x500.jpg", }; //定义表格布局 private ListView lv; private GridView gv; private String jsonString = ""; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.shouyef, null); cb = (ConvenientBanner) view.findViewById(R.id.cb); prl =(PullToRefreshLayout) view.findViewById(R.id.prl); gv = (GridView) view.findViewById(R.id.gv); lv = (ListView) view.findViewById(R.id.lv); prl.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { getdatawang(); prl.finishRefresh(); } },2000); } @Override public void loadMore() { new Handler().postDelayed(new Runnable() { @Override public void run() { String path = "http://api.tianapi.com/it/?key=4146a52d31ee75bedb005c5b50d9c249&num=10"; getdatawang(); prl.finishLoadMore(); } },2000); } }); getdatawang(); imageLoader = ImageLoader.getInstance(); imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity())); as = Arrays.asList(imgs); cb.setPages(new CBViewHolderCreator() { @Override public Object createHolder() { return new Masd(); } },as).setPointViewVisible(true) .startTurning(2000) .setPageIndicator(new int[]{R.drawable.ic_page_indicator,R.drawable.ic_page_indicator_focused}) .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL) .setManualPageable(true); return view; } //得到初始化的值 private void getdatawang() { new Thread(){ @Override public void run() { //4146a52d31ee75bedb005c5b50d9c249 String path = "http://api.tianapi.com/it/?key=4146a52d31ee75bedb005c5b50d9c249&num="+(count++); 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(); getjsonwang(inputStream,"utf-8"); Gson gson = new Gson(); JsonRootBean jsonss = gson.fromJson(jsonString, JsonRootBean.class); datas=jsonss.getNewslist(); Message message = new Message(); Bundle bundle = new Bundle(); bundle.putString("s",datas.toString()); message.setData(bundle); handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } //关闭数据流 private void getjsonwang(InputStream inputStream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s); BufferedReader reader = new BufferedReader(inputStreamReader); StringBuffer buffer = new StringBuffer(); StringBuilder builder = new StringBuilder(); String cou; while ((cou=reader.readLine())!=null){ builder.append(cou); } inputStream.close(); reader.close(); jsonString =builder.toString(); } catch (Exception e) { e.printStackTrace(); } } @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { } //litem的优化 class Mmasd extends BaseAdapter { @Override public int getCount() { return datas.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View vvv = View.inflate(getActivity(), R.layout.litem, null); ImageView img = (ImageView) vvv.findViewById(R.id.img); TextView tv = (TextView) vvv.findViewById(R.id.tv1); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(),img); tv.setText(datas.get(i).getTitle()); return vvv; } } //gitem的优化 class Maasd extends BaseAdapter{ @Override public int getCount() { return datas.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View vv = View.inflate(getActivity(), R.layout.gitem, null); ImageView img = (ImageView) vv.findViewById(R.id.img); TextView tv = (TextView) vv.findViewById(R.id.tv1); ImageLoader.getInstance().displayImage(datas.get(i).getPicUrl(),img); tv.setText(datas.get(i).getTitle()); return vv; } } //holder机制的优化 class Masd implements Holder<String> { private ImageView imageView; @Override public View createView(Context context) { imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView; } @Override public void UpdateUI(Context context, int position, String data) { ImageLoader.getInstance().displayImage(data,imageView); } } }Main页面
public class MainActivity extends AppCompatActivity { DrawerLayout dl; private FrameLayout fl; private TextView sy; private TextView qy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fl = (FrameLayout) findViewById(R.id.fl); sy = (TextView) findViewById(R.id.sy); qy = (TextView) findViewById(R.id.qy); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.fl,new QiyuF()); transaction.commit(); sy.setTextColor(Color.RED); qy.setTextColor(Color.BLACK); sy.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.fl,new QiyuF()); transaction.commit(); sy.setTextColor(Color.RED); qy.setTextColor(Color.BLACK); } }); qy.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.fl,new ShouyeF()); transaction.commit(); sy.setTextColor(Color.BLACK); qy.setTextColor(Color.RED); } }); } }