碎片

flyLayout+fragment

package com.example.work;

import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;

import com.example.work.bean.MyTab;
import com.example.work.fragment.FirstFragment;
import com.example.work.fragment.SecondFragment;
import com.example.work.fragment.ThirdFragment;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;
import com.flyco.tablayout.listener.OnTabSelectListener;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private CommonTabLayout ctLayout;

    private ArrayList<CustomTabEntity> customList = new ArrayList<>();

    private String[] permissions = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.INTERNET,
            Manifest.permission.ACCESS_NETWORK_STATE,
            Manifest.permission.ACCESS_WIFI_STATE,
            Manifest.permission.READ_PHONE_STATE,
            Manifest.permission.ACCESS_COARSE_LOCATION,
    };

    private Fragment fragment1,fragment2,fragment3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(permissions,101);
        }
        initView();

        fragment1 = new FirstFragment();
        fragment2 = new SecondFragment();
        fragment3 = new ThirdFragment();

        getSupportFragmentManager().beginTransaction()
                .add(R.id.ll_tap,fragment1)
                .add(R.id.ll_tap,fragment2)
                .add(R.id.ll_tap,fragment3).commit();

    }

    private void initView() {
        ctLayout = findViewById(R.id.ct_layout);
        customList.add(new MyTab("首页",R.mipmap.a,R.mipmap.a1));
        customList.add(new MyTab("地图",R.mipmap.b1,R.mipmap.b));
        customList.add(new MyTab("个人",R.mipmap.c1,R.mipmap.c));
        ctLayout.setTabData(customList);

        ctLayout.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
                if (position == 0) {
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.ll_tap,fragment1).commit();
                } else if (position == 1) {
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.ll_tap,fragment2).commit();
                }else{
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.ll_tap,fragment3).commit();
                }
            }

            @Override
            public void onTabReselect(int position) {

            }
        });
    }
}

碎片

第一个碎片
package com.example.work.fragment;


import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bumptech.glide.Glide;
import com.example.work.R;
import com.example.work.adapter.MenuAdapter;
import com.example.work.adapter.TypeAdapter;
import com.example.work.bean.ImageBean;
import com.example.work.bean.MenuBean;
import com.example.work.bean.TypeBean;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class FirstFragment extends Fragment {

    private static final String TAG = "---";

    private Banner myBr;
    private RecyclerView rvMenu;
    private RecyclerView rvType;

    public FirstFragment() {
        // Required empty public constructor
    }

    private String banner = "http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&itemid=2&act=ad_app";
    private String menu = "http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&act=column&ctype=4";
    private String type = "http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&act=column&ctype=2&mid=16";

    private View view;
    //数据源
    private ArrayList<String> image_list = new ArrayList<>();
    private ArrayList<MenuBean> menuList = new ArrayList<>();
    private ArrayList<TypeBean> typeList = new ArrayList<>();
    //适配器
    private MenuAdapter menuAdapter;
    private TypeAdapter typeAdapter;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view = inflater.inflate(R.layout.fragment_first, container, false);
        initView();

        myBanner();
        myMenu();
        myType();
        return view;
    }

    private void myType() {
        OkGo.<String>get(type).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String body = response.body();
                List<TypeBean> typeBeans = JSON.parseArray(body, TypeBean.class);
                typeList.addAll(typeBeans);
                typeAdapter.notifyDataSetChanged();
            }
        });

    }

    private void myMenu() {

        OkGo.<String>get(menu).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String body = response.body();
                List<MenuBean> menuBeans = JSON.parseArray(body, MenuBean.class);
                menuList.addAll(menuBeans);
                menuAdapter.notifyDataSetChanged();
            }
        });

    }

    //[{"aid":"10567","title":"1","siteid":"78703","userid":"0","pid":"2","typeid":"5","areaid":"0","amount":"0","currency":"","url":"","introduce":"","hits":"0","username":"admin78703","addtime":"1539583199","editor":"admin78703","edittime":"1539583199","fromtime":"1539532800","totime":"1602777599","stat":"0","note":"","code":"","text_name":"","text_url":"","text_title":"","text_style":"","image_src":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1359503278703.png","image_url":"","image_alt":"","flash_src":"","flash_url":"","flash_loop":"1","key_moduleid":"0","key_catid":"0","key_word":"","key_id":"0","listorder":"0","status":"3","alt":"","thumb":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1359503278703.png","linkurl":""},{"aid":"10568","title":"2","siteid":"78703","userid":"0","pid":"2","typeid":"5","areaid":"0","amount":"0","currency":"","url":"","introduce":"","hits":"0","username":"admin78703","addtime":"1539583230","editor":"admin78703","edittime":"1539583230","fromtime":"1539532800","totime":"1602777599","stat":"0","note":"","code":"","text_name":"","text_url":"","text_title":"","text_style":"","image_src":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1400155778703.png","image_url":"","image_alt":"","flash_src":"","flash_url":"","flash_loop":"1","key_moduleid":"0","key_catid":"0","key_word":"","key_id":"0","listorder":"0","status":"3","alt":"","thumb":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1400155778703.png","linkurl":""},{"aid":"10569","title":"3","siteid":"78703","userid":"0","pid":"2","typeid":"5","areaid":"0","amount":"0","currency":"","url":"","introduce":"","hits":"0","username":"admin78703","addtime":"1539583252","editor":"admin78703","edittime":"1539583252","fromtime":"1539532800","totime":"1602777599","stat":"0","note":"","code":"","text_name":"","text_url":"","text_title":"","text_style":"","image_src":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1400458878703.png","image_url":"","image_alt":"","flash_src":"","flash_url":"","flash_loop":"1","key_moduleid":"0","key_catid":"0","key_word":"","key_id":"0","listorder":"0","status":"3","alt":"","thumb":"http:\/\/d.yunzhancn.cn\/file\/upload\/201810\/15\/1400458878703.png","linkurl":""}]
    private void myBanner() {


        OkGo.<String>get(banner).execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String body = response.body();
                List<ImageBean> imageBeans = JSON.parseArray(body, ImageBean.class);
                for (int i = 0; i < imageBeans.size(); i++) {
                    image_list.add(imageBeans.get(i).getImage_src());
                }
                myBr.setImages(image_list);
                myBr.setDelayTime(1500);
                myBr.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        Glide.with(context).load(path).into(imageView);
                    }

                    @Override
                    public ImageView createImageView(Context context) {
                        return new ImageView(context);
                    }
                });

                myBr.start();
            }
        });

//        image_list.add("http://d.yunzhancn.cn/file/upload/201810/15/1359503278703.png");
//        image_list.add("http://d.yunzhancn.cn/file/upload/201810/15/1400155778703.png");
//        image_list.add("http://d.yunzhancn.cn/file/upload/201810/15/1400458878703.png");


    }

    private void initView() {
        myBr = view.findViewById(R.id.br);
        rvMenu = view.findViewById(R.id.rv_menu);
        rvType = view.findViewById(R.id.rv_type);

        menuAdapter = new MenuAdapter(menuList,getContext());
        rvMenu.setAdapter(menuAdapter);
        rvMenu.setLayoutManager(new GridLayoutManager(getContext(),4));

        typeAdapter = new TypeAdapter(typeList,getContext());
        rvType.setAdapter(typeAdapter);
        rvType.setLayoutManager(new GridLayoutManager(getContext(),4));
    }
}

第二个碎片

package com.example.work.fragment;


import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.CircleOptions;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle;
import com.amap.api.maps.model.PolylineOptions;
import com.example.work.R;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

/**
 * A simple {@link Fragment} subclass.
 */
public class SecondFragment extends Fragment {


    private MapView mapView;
    private AMap aMap;
    private Button btCut;

    public SecondFragment() {
        // Required empty public constructor
    }


    private View view;
    private MyLocationStyle myLocationStyle;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view = inflater.inflate(R.layout.fragment_second, container, false);
        initView();
        mapView.onCreate(savedInstanceState);
        MyStyle();
        myLatLng();
        makeLine();
        makeCircle();

        return view;
    }

    private void makeCircle() {

        LatLng latLng = new LatLng(39.984059, 1116.307771);
        CircleOptions options = new CircleOptions()
                .center(latLng)
                .radius(1000)
                .fillColor(Color.BLACK)
                .strokeColor(Color.BLUE)
                .strokeWidth(3);

        aMap.addCircle(options);
    }

    //划线
    private void makeLine() {
        ArrayList<LatLng> latLngs = new ArrayList<>();
        LatLng latLng = new LatLng(39.999391, 116.135972);
        LatLng latLng2 = new LatLng(39.898323, 116.057694);
        LatLng latLng3 = new LatLng(39.900430, 116.265061);
        latLngs.add(latLng);
        latLngs.add(latLng2);
        latLngs.add(latLng3);

        PolylineOptions color = new PolylineOptions()
                .addAll(latLngs)
                .width(10)
                .color(Color.BLACK);

        aMap.addPolyline(color);
    }

    //小蓝点
    private void MyStyle() {
        myLocationStyle = new MyLocationStyle();
        myLocationStyle.interval(2000);
        aMap.setMyLocationStyle(myLocationStyle);
        aMap.setTrafficEnabled(true);
        aMap.showIndoorMap(true);

    }

    //画点
    private void myLatLng() {
        LatLng latLng = new LatLng(39.906901, 116.397972);
        MarkerOptions marker = new MarkerOptions()
                .snippet("哈哈")
                .position(latLng)
                .alpha(0.8f);

        aMap.addMarker(marker);
    }

    private void initView() {
        mapView = view.findViewById(R.id.map_view);
        if (aMap == null) {
            aMap = mapView.getMap();
        }
        btCut = view.findViewById(R.id.bt_cut);

        btCut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View decorView = getActivity().getWindow().getDecorView();
                decorView.setDrawingCacheEnabled(true);
                decorView.buildDrawingCache();

                Bitmap bitmap = decorView.getDrawingCache();

                try {
                    bitmap.compress(Bitmap.CompressFormat.PNG,100,new FileOutputStream("/sdcard/DCIM/Camera/"+createName()+".jpg"));
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }

            }
        });
    }

    public String createName(){
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyyMM_HHmmss");
        String format1 = format.format(date);
        return "Work_"+format1;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }

    @Override
    public void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        mapView.onResume();
    }
}

第三个碎片
package com.example.work.fragment;


import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v4.content.FileProvider;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.example.work.Main2Activity;
import com.example.work.R;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class ThirdFragment extends Fragment {


    private ImageView imageHead;

    public ThirdFragment() {
        // Required empty public constructor
    }

    private View view;
    private Button bt_select;
    private Button bt_camera;
    private Uri uri;

    private List<String> path = new ArrayList<>();
    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view = inflater.inflate(R.layout.fragment_third, container, false);
        initView();

        imageHead.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                final PopupWindow popupWindow = new PopupWindow();

                popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
                popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
                final View inflate = LayoutInflater.from(getContext()).inflate(R.layout.layout_select, null);
                
                bt_camera = inflate.findViewById(R.id.bt_camera);
                bt_select = inflate.findViewById(R.id.bt_selectIn);
                
                bt_select.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent(getActivity(), Main2Activity.class);
                        startActivityForResult(intent,102);
                        popupWindow.dismiss();
                    }
                });

                bt_camera.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent();
                        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
                        uri = FileProvider.getUriForFile(getContext(), "com.example.work", new File("/sdcard/DCIM/Camera/a.jpg"));
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
                        startActivityForResult(intent,101);

                        popupWindow.dismiss();
                    }
                });

                
                popupWindow.setContentView(inflate);
                popupWindow.showAtLocation(LayoutInflater.from(getContext()).inflate(R.layout.fragment_third,null), Gravity.BOTTOM,0,-200);
            
                return true;
            }
        });

        return view;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == 101 && resultCode == Activity.RESULT_OK){
            Log.i("---", "onActivityResult: 我进来了");
            imageHead.setImageURI(uri);
        }else if(requestCode == 102 && resultCode == Activity.RESULT_OK){
            String image = data.getStringExtra("image");
            Glide.with(getContext()).load(image).into(imageHead);
        }
    }

    private void initView() {
        imageHead = view.findViewById(R.id.image_head);
    }
}

适配器

1
package com.example.work.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.example.work.R;

import java.util.List;

public class ImageAdapter extends BaseAdapter {

    private List<String> totalList;
    private Context context;
    private LayoutInflater layoutInflater;

    public ImageAdapter(List<String> totalList, Context context) {
        this.totalList = totalList;
        this.context = context;
        layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return totalList.size();
    }

    @Override
    public Object getItem(int position) {
        return totalList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.layout_image,null);

            holder.imageView = convertView.findViewById(R.id.iv_image);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }

        Glide.with(context).load(totalList.get(position)).into(holder.imageView);


        return convertView;
    }

    class ViewHolder{
        ImageView imageView;
    }
}

2
package com.example.work.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.work.R;
import com.example.work.bean.MenuBean;

import java.util.List;

public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.MyViewHloder> {

    private List<MenuBean> toalList;
    private Context context;

    public MenuAdapter(List<MenuBean> toalList, Context context) {
        this.toalList = toalList;
        this.context = context;
    }

    @NonNull
    @Override
    public MyViewHloder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        return new MyViewHloder(LayoutInflater.from(context).inflate(R.layout.layout_menu_image,viewGroup,false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHloder myViewHloder, int i) {
        myViewHloder.textView_title.setText(toalList.get(i).getName());
        Glide.with(context).load(toalList.get(i).getThumb()).into(myViewHloder.imageView);
    }

    @Override
    public int getItemCount() {
        return toalList.size();
    }

    class MyViewHloder extends RecyclerView.ViewHolder{
        ImageView imageView;
        TextView textView_title;
        public MyViewHloder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.iv_menu);
            textView_title = itemView.findViewById(R.id.tv_title);
        }
    }

}

3
package com.example.work.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.example.work.R;
import com.example.work.bean.TypeBean;

import java.util.List;

public class TypeAdapter extends RecyclerView.Adapter<TypeAdapter.MyViewHolder>{

    private List<TypeBean> totalList;
    private Context context;

    public TypeAdapter(List<TypeBean> totalList, Context context) {
        this.totalList = totalList;
        this.context = context;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.layout_menu_image,viewGroup,false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        Glide.with(context).load(totalList.get(i).getThumb()).into(myViewHolder.imageView_pic);
    }

    @Override
    public int getItemCount() {
        return totalList.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder{
        ImageView imageView_pic;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView_pic = itemView.findViewById(R.id.iv_menu);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值