MainActivity页面
package bwie.com.zhoukao3moni1.activity;
import android.graphics.Color;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import java.util.ArrayList;
import bwie.com.zhoukao3moni1.R;
import bwie.com.zhoukao3moni1.adapter.MyFragmentAdapter;
import bwie.com.zhoukao3moni1.baseclass.BaseActivity;
import bwie.com.zhoukao3moni1.fragment.Fragment1;
import bwie.com.zhoukao3moni1.fragment.Fragment2;
import bwie.com.zhoukao3moni1.fragment.Fragment3;
import bwie.com.zhoukao3moni1.fragment.Fragment4;
import bwie.com.zhoukao3moni1.fragment.Fragment5;
import bwie.com.zhoukao3moni1.fragment.Fragment6;
import bwie.com.zhoukao3moni1.fragment.Fragment7;
public class MainActivity extends BaseActivity {
private ViewPager view_pager;
private TabLayout tab;
ArrayList<String> tabs = new ArrayList<>();
@Override
protected int findId() {
return R.layout.activity_main;
}
@Override
protected void initView() {
//初始化控件
view_pager = (ViewPager) findViewById(R.id.view_pager);
tab = (TabLayout) findViewById(R.id.tab);
}
@Override
protected void getServiceData() {
//创建集合
ArrayList<Fragment> list = new ArrayList<>();
//创建Fragment
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
list.add(new Fragment4());
list.add(new Fragment5());
list.add(new Fragment6());
list.add(new Fragment7());
//创建适配器
MyFragmentAdapter adapter = new MyFragmentAdapter(getSupportFragmentManager(), list,tabs);
//添加到适配器
view_pager.setAdapter(adapter);
//tab标题
//设置tablayout模式
tab.setTabMode(TabLayout.MODE_SCROLLABLE);
//设置文字划过颜色
tab.setTabTextColors(Color.BLACK,Color.RED);
//tab.setTabGravity(TableLayout.TEXT_ALIGNMENT_GRAVITY);
//创建集合存tab标签
tabs.add("新闻");
tabs.add("娱乐");
tabs.add("游戏");
tabs.add("热点");
tabs.add("搜索");
tabs.add("少儿");
tabs.add("教育");
//设置tab标签
tab.addTab(tab.newTab().setText(tabs.get(0)));
tab.addTab(tab.newTab().setText(tabs.get(1)));
tab.addTab(tab.newTab().setText(tabs.get(2)));
tab.addTab(tab.newTab().setText(tabs.get(3)));
tab.addTab(tab.newTab().setText(tabs.get(4)));
tab.addTab(tab.newTab().setText(tabs.get(5)));
tab.addTab(tab.newTab().setText(tabs.get(6)));
//设置疲累
tab.setupWithViewPager(view_pager);
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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="bwie.com.zhoukao3moni1.activity.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<!--biaoti-->
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/tab"
app:tabGravity="center"
app:tabPadding="5dp"
app:tabTextAppearance="@style/AppTheme"
></android.support.design.widget.TabLayout>
<!--fragment-->
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager"
></android.support.v4.view.ViewPager>
</LinearLayout>
<RelativeLayout
android:layout_width="350dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ff00"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="哈哈"
/>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
Fragment1
package bwie.com.zhoukao3moni1.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import bwie.com.zhoukao3moni1.R;
import bwie.com.zhoukao3moni1.adapter.MyAdapter;
import bwie.com.zhoukao3moni1.adapter.MyPageAdapter;
import bwie.com.zhoukao3moni1.baseclass.BaseFragment;
import bwie.com.zhoukao3moni1.bean.UserBean;
import bwie.com.zhoukao3moni1.httputils.HttpUtils;
import bwie.com.zhoukao3moni1.view.XListView;
/**
* A simple {@link Fragment} subclass.
*/
public class Fragment1 extends BaseFragment {
private List<ImageView> list=new ArrayList<>();
private List<UserBean.DataBean> xlist=new ArrayList<>();
private ViewPager vp;
//创建连接
private String path="http://www.xieast.com/api/news/news.php?page=";
private int page=1;
//创建小圆点集合
private List<ImageView> images;
//找到布局
private LinearLayout ll_points;
//创建Handler
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
String json = (String) msg.obj;
//解析
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray banner = jsonObject.getJSONArray("banner");
images = new ArrayList<>();
for (int i = 0; i < banner.length(); i++) {
JSONObject js = banner.getJSONObject(i);
String image_url = js.getString("image_url");
//创建image
ImageView imageView = new ImageView(getActivity());
DisplayImageOptions options = ImageLoaderUtils.getOptions();
ImageLoader.getInstance().displayImage(image_url,imageView,options);
list.add(imageView);
//小圆点 得到image
ImageView point = new ImageView(getActivity());
//通过point找到布局没选中的
point.setImageResource(R.drawable.noshape);
//设置子布局宽高
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(30, 30);
//设置子布局margin
params.leftMargin = 10;
params.rightMargin = 10;
//把以上添加到ll_points
ll_points.addView(point, params);
images.add(point);
}
//创建适配器
MyPageAdapter adapter = new MyPageAdapter(getActivity(),list);
vp.setAdapter(adapter);
// 设置第一个小圆点为选中状态
seletePoint(0);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
private XListView xlistview;
private MyAdapter adapter;
private void seletePoint(int i) {
for (int j = 0; j < images.size(); j++) {
if (i == j) {
images.get(j).setImageResource(R.drawable.shape);
} else {
images.get(j).setImageResource(R.drawable.noshape);
}
}
}
public Fragment1() {
// Required empty public constructor
}
//设置布局
@Override
protected int getLayoutId() {
return R.layout.fragment1;
}
//初始化
@Override
protected void initView(View view) {
//初始化vp
vp = (ViewPager) view.findViewById(R.id.vp);
ll_points = (LinearLayout) view.findViewById(R.id.ll_points);
xlistview = (XListView) view.findViewById(R.id.xlistview);
initData();
}
private void initData() {
//下拉刷新
xlistview.setPullRefreshEnable(true);
//上拉加载
xlistview.setPullLoadEnable(true);
//设置刷新时间
long l = System.currentTimeMillis();
Date date=new Date(l);
SimpleDateFormat format=new SimpleDateFormat("HH:mm");
xlistview.setRefreshTime(format.format(date));
//监听
xlistview.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
Wangluo();
}
@Override
public void onLoadMore() {
page+=1;
Wangluo();
}
});
//创建适配器
adapter = new MyAdapter(getActivity(),xlist);
xlistview.setAdapter(adapter);
}
//逻辑代码
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new Thread(new Runnable() {
@Override
public void run() {
//设置路径
String path = "http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner";
try {
URL url=new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
//判断状态吗
if (connection.getResponseCode()==200) {
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1) {
bos.write(buffer,0,len);
}
//关流
inputStream.close();
bos.close();
String s = bos.toString();
Message message = handler.obtainMessage();
message.what=0;
message.obj=s;
message.sendToTarget();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
//网络请求
Wangluo();
}
private void Wangluo() {
String url=path+page;
Log.i("aaa",url);
HttpUtils httpUtils = HttpUtils.getinstance();
httpUtils.getData(url);
httpUtils.setjsonlisten(new HttpUtils.getjsonlisten() {
@Override
public void tojsonlisten(String json) {
//创建Gson
Gson gson = new Gson();
UserBean userBean = gson.fromJson(json, UserBean.class);
List<UserBean.DataBean> data = userBean.getData();
if (page==1){
xlist.clear();
}
xlist.addAll(data);
adapter.notifyDataSetChanged();
if (page==1){
xlistview.stopRefresh();
}else {
xlistview.stopLoadMore();
}
}
});
}
//停止m,,,,
@Override
public void onPause() {
super.onPause();
stops();
}
//停止轮播
private void stops() {
handler.removeCallbacksAndMessages(null);
}
//开始
@Override
public void onResume() {
super.onResume();
starts();
}
//开始轮播
private void starts() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
int i = vp.getCurrentItem();
vp.setCurrentItem(i+1);
seletePoint((i + 1) % images.size());
handler.postDelayed(this,2000);
}
},2000);
}
}
//解决轮播和viewpager问题
package bwie.com.zhoukao3moni1.baseclass;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.WindowInsets;
/**
* Created by 我 on 2018/7/21.
*/
public class PagerClass extends ViewPager{
public PagerClass(Context context) {
super(context);
}
public PagerClass(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
return super.dispatchApplyWindowInsets(insets);
}
}
封装Framgnet类代码
package bwie.com.zhoukao3moni1.baseclass;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import bwie.com.zhoukao3moni1.R;
/**
* Created by 我 on 2018/7/21.
*/
public abstract class BaseFragment extends Fragment{
private View view;
private View pager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (view==null){
view = View.inflate(getActivity(), getLayoutId(), null);
}
ViewGroup parent = (ViewGroup) view.getParent();
if (parent!=null) {
parent.removeView(view);
}
pager = view.findViewById(R.id.view_pager);
initView(view);
return view;
}
protected abstract int getLayoutId();
protected abstract void initView(View view);
}
分页代码
package bwie.com.zhoukao3moni1.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
import bwie.com.zhoukao3moni1.R;
import bwie.com.zhoukao3moni1.bean.UserBean;
/**
* Created by 我 on 2018/7/21.
*/
public class MyAdapter extends BaseAdapter{
private static final int TYPE_0 = 0;
private static final int TYPE_1 = 1;
private static final int TYPE_2 = 2;
private static final int TYPE_3 = 3;
private Context context;
private List<UserBean.DataBean> list;
public MyAdapter(Context context, List<UserBean.DataBean> list) {
this.context = context;
this.list = list;
}
@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 int getViewTypeCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
String s1 = list.get(position).getThumbnail_pic_s();
String s2 = list.get(position).getThumbnail_pic_s02();
String s3 = list.get(position).getThumbnail_pic_s03();
if (s1!=null&&s2==null&&s3==null){
return TYPE_0;
}else if (s1!=null&&s2!=null&&s3!=null){
return TYPE_1;
}else if (s1!=null&&s2!=null&&s3==null){
return TYPE_2;
}else {
return TYPE_3;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
int type = getItemViewType(position);
if (convertView == null) {
//有1个图片
if (type==TYPE_0) {
convertView = View.inflate(context, R.layout.item_adapter1, null);
holder = new ViewHolder();
holder.text_title1 = (TextView) convertView.findViewById(R.id.text_title1);
holder.text_author1 = (TextView) convertView.findViewById(R.id.text_author1);
holder.date1 = (TextView) convertView.findViewById(R.id.date1);
holder.img1 = (ImageView) convertView.findViewById(R.id.img1);
convertView.setTag(holder);
} else if (type==TYPE_1){
//有3个图片
convertView = View.inflate(context, R.layout.item_adapter2, null);
holder = new ViewHolder();
holder.text_title2 = (TextView) convertView.findViewById(R.id.text_title2);
holder.img2 = (ImageView) convertView.findViewById(R.id.img2);
holder.img3 = (ImageView) convertView.findViewById(R.id.img3);
holder.img4 = (ImageView) convertView.findViewById(R.id.img4);
convertView.setTag(holder);
}else if (type==TYPE_2){
//有2图片
convertView = View.inflate(context, R.layout.item_adapter3, null);
holder = new ViewHolder();
holder.text_title3 = (TextView) convertView.findViewById(R.id.text_title3);
holder.img5 = (ImageView) convertView.findViewById(R.id.img5);
holder.img6 = (ImageView) convertView.findViewById(R.id.img6);
convertView.setTag(holder);
}else {
convertView = View.inflate(context, R.layout.item_adapter4, null);
holder = new ViewHolder();
holder.text_title4 = (TextView) convertView.findViewById(R.id.text_title4);
holder.text_author4 = (TextView) convertView.findViewById(R.id.text_author4);
holder.date4 = (TextView) convertView.findViewById(R.id.date4);
convertView.setTag(holder);
}
}else{
holder = (ViewHolder) convertView.getTag();
}
if (type==TYPE_0){
holder.text_title1.setText(list.get(position).getTitle());
holder.text_author1.setText(list.get(position).getAuthor_name());
holder.date1.setText(list.get(position).getDate());
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder.img1);
} else if (type==TYPE_1){
holder.text_title2.setText(list.get(position).getTitle());
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder.img2);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder.img3);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holder.img4);
} else if (type==TYPE_2) {
holder.text_title3.setText(list.get(position).getTitle());
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder.img5);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder.img6);
}else {
holder.text_title4.setText(list.get(position).getTitle());
holder.text_author4.setText(list.get(position).getAuthor_name());
holder.date4.setText(list.get(position).getDate());
}
return convertView;
}
private class ViewHolder{
TextView text_title1,date1,text_author1;
TextView text_title2,text_title3;
ImageView img1,img2,img3,img4,img5,img6;
TextView text_title4,date4,text_author4;
}
}
//MyPageadapter
package bwie.com.zhoukao3moni1.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.List;
/**
* Created by 我 on 2018/7/21.
*/
public class MyPageAdapter extends PagerAdapter{
private Context context;
private List<ImageView> list;
public MyPageAdapter(Context context, List<ImageView> 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) {
position%=list.size();
ImageView imageView = list.get(position);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}
//MyFragment代码 和绑定TABLAYOUT
package bwie.com.zhoukao3moni1.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
/**
* Created by 我 on 2018/7/20.
*/
public class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> list;
private List<String> tabs;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> list, List<String> tabs) {
super(fm);
this.list = list;
this.tabs = tabs;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position);
}
}
//接口回调
package bwie.com.zhoukao3moni1.httputils;
import android.os.AsyncTask;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import cz.msebera.android.httpclient.HttpResponse;
import cz.msebera.android.httpclient.client.HttpClient;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;
/**
* Created by 我 on 2018/7/21.
*/
public class HttpUtils {
private static HttpUtils httpUtils;
private getjsonlisten getjsonlisten;
public static HttpUtils getinstance(){
if (httpUtils==null) {
httpUtils = new HttpUtils();
}
return httpUtils;
}
public void getData(String url){
Async async = new Async();
async.execute(url);
}
private class Async extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... params) {
HttpClient client=new DefaultHttpClient();
HttpGet get=new HttpGet(params[0]);
try {
HttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode==200){
InputStream inputStream = response.getEntity().getContent();
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1) {
bos.write(buffer,0,len);
}
inputStream.close();
bos.close();
String s = bos.toString();
return s;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
getjsonlisten.tojsonlisten(s);
}
}
public interface getjsonlisten{
public void tojsonlisten(String json);
}
public void setjsonlisten(getjsonlisten getjsonlisten){
this.getjsonlisten=getjsonlisten;
}
}
fragment加导航栏Tablayout,网络请求轮播图,shape画图,网络请求数据xlistview,and 分页,加drawerlayout侧滑
猜你喜欢
转载自blog.csdn.net/nideyida1/article/details/81156994
今日推荐
周排行