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;
public class FirstFragment extends Fragment {
private static final String TAG = "---";
private Banner myBr;
private RecyclerView rvMenu;
private RecyclerView rvType;
public FirstFragment() {
}
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) {
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();
}
});
}
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();
}
});
}
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;
public class SecondFragment extends Fragment {
private MapView mapView;
private AMap aMap;
private Button btCut;
public SecondFragment() {
}
private View view;
private MyLocationStyle myLocationStyle;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
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;
public class ThirdFragment extends Fragment {
private ImageView imageHead;
public ThirdFragment() {
}
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) {
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);
}
}
}