布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<android.support.v4.widget.DrawerLayout
android:id="@+id/draw"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!--主界面-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorHeight="0dp"/>
</LinearLayout>
<!--============================================-->
<!--侧滑界面-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#E3B68F"
android:orientation="horizontal">
<Button
android:id="@+id/close_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关闭侧滑"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
判断网络,get请求,封装方法
package com.bwei.lianxi2_week2;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @Author:h
* @E-mail: 2973627661@163.com
* @Date:2019/2/21 11:04
* @Description:描述信息
*/
public class HttpUtil {
//创建接口
public interface CallBack {
//写方法
void getData(String s);
}
//封装异步
public static void getAsyncTask(String strUrl, final CallBack back) {
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String... strings) {
return getRequest(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
back.getData(s);
}
}.execute(strUrl);
}
public static boolean isNetWork(Context context) {
if (context != null) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
return info.isAvailable();
}
}
return false;
}
//get请求
public static String getRequest(String strUrl) {
try {
URL url = new URL(strUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setReadTimeout(5000);
httpURLConnection.setConnectTimeout(5000);
if (httpURLConnection.getResponseCode() == 200) {
InputStream stream = httpURLConnection.getInputStream();
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(streamReader);
StringBuffer buffer = new StringBuffer();
String str = "";
while ((str = reader.readLine()) != null) {
buffer.append(str);
}
//关闭资源
httpURLConnection.disconnect();
return buffer.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
AsyncTask的方法
package com.bwei.lianxi2_week2.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bwei.lianxi2_week2.HttpUtil;
import com.bwei.lianxi2_week2.R;
import com.bwei.lianxi2_week2.adapter.XAdapter;
import com.bwei.lianxi2_week2.bean.JsonBean;
import com.google.gson.Gson;
import com.qy.xlistview.XListView;
import java.util.List;
/**
* @Author:h
* @E-mail: 2973627661@163.com
* @Date:2019/2/21 10:47
* @Description:描述信息
*/
public class ShouFragment extends Fragment {
private XListView xlist_view;
private String strUrl="https://www.apiopen.top/novelApi";
private XAdapter xAdapter;
private List<JsonBean.DataBean> list;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.shou_layout,container,false);
//初始化控件
xlist_view = view.findViewById(R.id.xlist_view);
//是否启用上拉加载
xlist_view.setPullLoadEnable(true);
//设置上拉和加载
xlist_view.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
HttpUtil.getAsyncTask(strUrl, new HttpUtil.CallBack() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
list = bean.getData();
//适配器
xAdapter = new XAdapter(list, getActivity());
xlist_view.setAdapter(xAdapter);
xlist_view.stopRefresh();
}
});
}
@Override
public void onLoadMore() {
HttpUtil.getAsyncTask(strUrl, new HttpUtil.CallBack() {
@Override
public void getData(String s) {
Gson gson=new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
List<JsonBean.DataBean> list1 = bean.getData();
list.addAll(list1);
xAdapter.notifyDataSetChanged();
xlist_view.stopLoadMore();
}
});
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
HttpUtil.getAsyncTask(strUrl, new HttpUtil.CallBack() {
@Override
public void getData(String s) {
//解析
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
list = bean.getData();
//适配器
xAdapter = new XAdapter(list, getActivity());
xlist_view.setAdapter(xAdapter);
}
});
}
}
handler的方法
package com.bwei.lianxi2_week2.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.bwei.lianxi2_week2.HttpUtil;
import com.bwei.lianxi2_week2.R;
import com.bwei.lianxi2_week2.adapter.XAdapter;
import com.bwei.lianxi2_week2.bean.JsonBean;
import com.google.gson.Gson;
import com.qy.xlistview.XListView;
import java.util.List;
/**
* @Author:h
* @E-mail: 2973627661@163.com
* @Date:2019/2/21 10:47
* @Description:描述信息
*/
public class MyFragment extends Fragment {
private XListView my_xlistview;
private String str = "https://www.apiopen.top/novelApi";
private Handler handler = new Handler() {
private XAdapter adapter;
private List<JsonBean.DataBean> list;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
String s = (String) msg.obj;
Gson gson = new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
list = bean.getData();
adapter = new XAdapter(list, getActivity());
my_xlistview.setAdapter(adapter);
my_xlistview.stopRefresh();
break;
case 1:
String s1 = (String) msg.obj;
Gson gson1 = new Gson();
JsonBean bean1 = gson1.fromJson(s1, JsonBean.class);
List<JsonBean.DataBean> list1 = bean1.getData();
list.addAll(list1);
adapter.notifyDataSetChanged();
my_xlistview.stopLoadMore();
break;
case 2:
Toast.makeText(getActivity(), "请检查您的网络连接", Toast.LENGTH_LONG).show();
break;
}
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_layout, container, false);
//初始化控件
my_xlistview = view.findViewById(R.id.my_Xlistview);
//设置是否启用上拉加载
my_xlistview.setPullLoadEnable(true);
my_xlistview.setPullRefreshEnable(true);
//设置xlistview的监听事件
my_xlistview.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
new Thread() {
@Override
public void run() {
super.run();
//判断是否有网
boolean netWork = HttpUtil.isNetWork(getActivity());
if (netWork) {
String s = HttpUtil.getRequest(str);
Message message = new Message();
message.obj = s;
message.what = 0;
handler.sendMessage(message);
} else {
Message message = new Message();
message.what = 2;
handler.sendMessage(message);
}
}
}.start();
}
@Override
public void onLoadMore() {
new Thread() {
@Override
public void run() {
super.run();
//判断是否有网
boolean netWork = HttpUtil.isNetWork(getActivity());
if (netWork) {
String s = HttpUtil.getRequest(str);
Message message = new Message();
message.obj = s;
message.what = 1;
handler.sendMessage(message);
} else {
Message message = new Message();
message.what = 2;
handler.sendMessage(message);
}
}
}.start();
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new Thread() {
@Override
public void run() {
super.run();
//判断是否有网
boolean netWork = HttpUtil.isNetWork(getActivity());
if (netWork) {
String s = HttpUtil.getRequest(str);
Message message = new Message();
message.obj = s;
message.what = 0;
handler.sendMessage(message);
} else {
Message message = new Message();
message.what = 2;
handler.sendMessage(message);
}
}
}.start();
}
}
图片的圆角和圆形
package com.bwei.lianxi4_week2.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.bwei.lianxi4_week2.R;
/**
* @Author:h
* @E-mail: 2973627661@163.com
* @Date:2019/2/22 14:59
* @Description:描述信息
*/
public class Fragment3 extends Fragment {
private ImageView image_icon;
private String url="http://img-tailor.11222.cn/bcv/big/201807181016433010.jpg";
private String imgurl="http://img-tailor.11222.cn/bcv/big/1130387363143.jpg";
private ImageView img;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.frag03,container,false);
//初始化控件
image_icon = view.findViewById(R.id.image_icon);
img = view.findViewById(R.id.img);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//圆角
RoundedCorners corners = new RoundedCorners(90);
RequestOptions options = RequestOptions.bitmapTransform(corners).override(300, 300);
Glide.with(getActivity()).load(url).apply(options).into(image_icon);
//圆形
Glide.with(getActivity()).load(imgurl).apply(RequestOptions.bitmapTransform(new CircleCrop())).into(img);
}
}