侧拉+DrawLayout+TabLayout

布局

<?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);
    }
}

WPF实现侧拉式菜单栏可以通过以下步骤实现: 1.创建一个具有侧拉式菜单栏的主窗口 2.在主窗口中添加一个侧拉式菜单栏控件,并设置其大小和位置 3.在侧拉式菜单栏控件中添加需要显示的菜单项,并设置其大小、位置和相关事件处理程序 4.在主窗口中添加一个主内容区域控件,并设置其大小和位置 5.在主内容区域控件中添加需要显示的内容,并设置其大小、位置和相关事件处理程序 代码示例: ``` <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Border Grid.Column="0" Background="Gray" Width="150" VerticalAlignment="Stretch"> <StackPanel> <Button Content="Menu Item 1" Margin="10"/> <Button Content="Menu Item 2" Margin="10"/> <Button Content="Menu Item 3" Margin="10"/> </StackPanel> </Border> <Border Grid.Column="1" Background="White" Margin="10"> <TextBlock Text="Main Content Area" Margin="10"/> </Border> </Grid> </Window> ``` 在上面的示例中,我们使用Grid布局来实现侧拉式菜单栏和主内容区域的布局,同时使用Border控件来包裹菜单项和主内容。在侧拉式菜单栏中,我们使用StackPanel来布局菜单项,并在每个菜单项上添加了Margin属性来设置间距。在主内容区域中,我们使用TextBlock控件来显示内容。 需要注意的是,上述示例仅供参考,您可以根据自己的实际需要进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值