diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..0f65517
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d139b6c..108b541 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
- ndkVersion '23.0.7123448'
+ // ndkVersion '23.0.7123448'
defaultConfig {
applicationId "com.navinfo.outdoor"
@@ -22,9 +22,9 @@ android {
}
}
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
}
//efs {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 52a502f..01af8c2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,7 +71,7 @@
-
+
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java b/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java
index a030216..b002fb1 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/FragmentManagement.java
@@ -21,6 +21,7 @@ import com.navinfo.outdoor.fragment.MineFragment;
import com.navinfo.outdoor.fragment.PoiFragment;
import com.navinfo.outdoor.fragment.PrivilegeFragment;
import com.navinfo.outdoor.fragment.RecordFragment;
+import com.navinfo.outdoor.fragment.RoadFragment;
import com.navinfo.outdoor.fragment.SetFragment;
import com.navinfo.outdoor.fragment.TaskExWebFragment;
import com.navinfo.outdoor.fragment.TaskExplainFragment;
@@ -30,7 +31,6 @@ import com.navinfo.outdoor.fragment.TaskPrefectureFragment;
import com.navinfo.outdoor.fragment.RegisterFragment;
import com.navinfo.outdoor.fragment.TreasureFragment;
import com.navinfo.outdoor.fragment.UserAttestationFragment;
-import com.navinfo.outdoor.fragment.RoadFragment;
import com.navinfo.outdoor.fragment.WithdrawFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.navinfo.outdoor.fragment.WithdrawalRecordFragment;
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java
index 50d6e77..5ed7257 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java
@@ -176,6 +176,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
Toast.makeText(UserActivity.this, region_id, Toast.LENGTH_SHORT).show();
String tx = opt1tx + " " + opt2tx + " " + opt3tx;
region.setText(tx);
+
}
}).setSubmitText("确定")//确定按钮文字
.setCancelText("取消")//取消按钮文字
@@ -242,10 +243,12 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
Province_AreaList.add(City_AreaList);//添加该省所有地区数据
city_AreaList.add(AreaList);//添加该省所有地区数据的bean
}
+
/**
* 添加城市数据
*/
options2Items.add(CityList);
+
/**
* 添加地区数据
*/
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java
index 092973a..de585b3 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java
@@ -1,64 +1,108 @@
package com.navinfo.outdoor.fragment;
+import android.content.Intent;
+import android.graphics.Bitmap;
import android.os.Bundle;
-
-import androidx.fragment.app.Fragment;
-
-import android.view.LayoutInflater;
+import android.view.KeyEvent;
import android.view.View;
-import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import androidx.annotation.Nullable;
import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.base.BaseFragment;
+import com.tencent.tencentmap.mapsdk.maps.MapView;
+import com.tencent.tencentmap.mapsdk.maps.TencentMap;
+
+import static android.app.Activity.RESULT_OK;
/**
- * 寻宝-点击上传弹窗点击poi
+ * 记录的Fragment
+ * 2021-5-25
*/
-public class PoiFragment extends Fragment {
+public class PoiFragment extends BaseFragment implements View.OnClickListener {
- // TODO: Rename parameter arguments, choose names that match
- // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
- private static final String ARG_PARAM1 = "param1";
- private static final String ARG_PARAM2 = "param2";
+ private EditText editDescribe;
+ private ImageView imagePanorama;
+ private ImageView imageName;
+ private ImageView imageInternalPhotos;
+ private ImageView imageCard;
+ private ImageView imageElse;
- // TODO: Rename and change types of parameters
- private String mParam1;
- private String mParam2;
-
- public PoiFragment() {
- // Required empty public constructor
+ @Override
+ protected int getLayout() {
+ return R.layout.poi_fragment;
}
-
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment PoiFragment.
- */
- // TODO: Rename and change types and number of parameters
- public static PoiFragment newInstance(String param1, String param2) {
- PoiFragment fragment = new PoiFragment();
- Bundle args = new Bundle();
- args.putString(ARG_PARAM1, param1);
- args.putString(ARG_PARAM2, param2);
- fragment.setArguments(args);
- return fragment;
+ @Override
+ protected void initView() {
+ super.initView();
+ editDescribe = findViewById(R.id.edit_describe);
+ imagePanorama = findViewById(R.id.image_panorama);
+ imagePanorama.setOnClickListener(this::onClick);
+ imageName = findViewById(R.id.image_name);
+ imageName.setOnClickListener(this::onClick);
+ imageInternalPhotos = findViewById(R.id.image_internal_photos);
+ imageInternalPhotos.setOnClickListener(this::onClick);
+ imageCard = findViewById(R.id.image_card);
+ imageCard.setOnClickListener(this::onClick);
+ imageElse = findViewById(R.id.image_else);
+ imageElse.setOnClickListener(this::onClick);
+ }
+ @Override
+ protected void initData() {
+ super.initData();
}
@Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_PARAM1);
- mParam2 = getArguments().getString(ARG_PARAM2);
+ public void onClick(View v) {
+ switch (v.getId()){
+ case R.id.image_panorama:
+ Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE");
+ startActivityForResult(intentPanorama, 101);
+ break;
+ case R.id.image_name:
+ Intent intentName = new Intent("android.media.action.IMAGE_CAPTURE");
+ startActivityForResult(intentName, 102);
+ break;
+ case R.id.image_internal_photos:
+ Intent intentInternal = new Intent("android.media.action.IMAGE_CAPTURE");
+ startActivityForResult(intentInternal, 103);
+ break;
+ case R.id.image_card:
+ Intent intentCard = new Intent("android.media.action.IMAGE_CAPTURE");
+ startActivityForResult(intentCard, 104);
+ break;
+ case R.id.image_else:
+ Intent intentElse = new Intent("android.media.action.IMAGE_CAPTURE");
+ startActivityForResult(intentElse, 105);
+ break;
}
}
-
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_poi, container, false);
+ public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == 101 && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();//从Intent中获取附加值
+ Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像
+ imagePanorama.setImageBitmap(bitmap);//显示图像
+ } else if (requestCode == 102 && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();//从Intent中获取附加值
+ Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像
+ imageName.setImageBitmap(bitmap);//显示图像
+ }else if (requestCode == 103 && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();//从Intent中获取附加值
+ Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像
+ imageInternalPhotos.setImageBitmap(bitmap);//显示图像
+ }else if (requestCode == 104 && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();//从Intent中获取附加值
+ Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像
+ imageCard.setImageBitmap(bitmap);//显示图像
+ }else if (requestCode == 105 && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();//从Intent中获取附加值
+ Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像
+ imageElse.setImageBitmap(bitmap);//显示图像
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
index 30af824..37b2934 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
@@ -16,12 +16,16 @@ import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
+import com.kongzue.dialog.util.DialogSettings;
+import com.kongzue.dialog.v3.ShareDialog;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.activity.FragmentManagement;
import com.navinfo.outdoor.api.Constant;
@@ -44,6 +48,9 @@ import com.tencent.tencentmap.mapsdk.maps.model.CameraPosition;
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
import com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle;
+import java.util.ArrayList;
+import java.util.List;
+
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
/**
@@ -61,6 +68,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private MyLocationStyle locationStyle;
private OnLocationChangedListener locationChangedListener;
private ImageView ivLocation;
+ private ImageView ivSubmit;
private ImageView ivRefish;
@Override
@@ -73,6 +81,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
super.initView();
ivRefish = findViewById(R.id.iv_refrish);
ivRefish.setOnClickListener(this::onClick);
+ ivSubmit = findViewById(R.id.iv_submit);
+ ivSubmit.setOnClickListener(this::onClick);
treasureMap = (MapView) findViewById(R.id.treasure_map);
tencentMap = treasureMap.getMap();
cbMapType = (CheckBox) findViewById(R.id.cb_map_type);
@@ -207,19 +217,53 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
tencentMap.animateCamera(cameraUpdateOut);
break;
case R.id.iv_location://定位:
- Constant.currentLocation.getLongitude();
- CameraUpdate cameraSigma =
- CameraUpdateFactory.newCameraPosition(new CameraPosition(
- new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度
- 19, //目标缩放级别
- 0, //目标倾斜角[0.0 ~ 45.0] (垂直地图时为0)
- 0)); //目标旋转角 0~360° (正北方为0)
- tencentMap.animateCamera(cameraSigma);
+ if (Constant.currentLocation!=null){
+ Constant.currentLocation.getLongitude();
+ CameraUpdate cameraSigma =
+ CameraUpdateFactory.newCameraPosition(new CameraPosition(
+ new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度
+ 19, //目标缩放级别
+ 0, //目标倾斜角[0.0 ~ 45.0] (垂直地图时为0)
+ 0)); //目标旋转角 0~360° (正北方为0)
+ tencentMap.animateCamera(cameraSigma);
+ }else {
+ Toast.makeText(getActivity(), "无定位", Toast.LENGTH_SHORT).show();
+ checkNetWork();
+ }
+
break;
- case R.id.iv_refrish://
- Intent road = new Intent(getActivity(), FragmentManagement.class);
- road.putExtra("tag",28);
- startActivity(road);
+ case R.id.iv_submit://弹窗
+ //分享
+ CharSequence title = "请选择上报类型";
+ List itemList = new ArrayList<>();
+ itemList.add(new ShareDialog.Item(getContext(), R.drawable.push_poi, "POI"));
+ itemList.add(new ShareDialog.Item(getContext(), R.drawable.push_road, "道路"));
+ itemList.add(new ShareDialog.Item(getContext(), R.drawable.push_chongdianzhuang, "充电站"));
+ itemList.add(new ShareDialog.Item(getContext(), R.drawable.push_qingbao, "其他"));
+ ShareDialog.show((AppCompatActivity) getActivity(), itemList, new ShareDialog.OnItemClickListener() {
+ @Override
+ public boolean onClick(ShareDialog shareDialog, int index, ShareDialog.Item item) {
+ switch (index){
+ case 0:
+ Intent poiIntent = new Intent(getActivity(), FragmentManagement.class);
+ poiIntent.putExtra("tag",27);
+ startActivity(poiIntent);
+ break;
+ case 1:
+ Intent roadIntent = new Intent(getActivity(), FragmentManagement.class);
+ roadIntent.putExtra("tag",28);
+ startActivity(roadIntent);
+ break;
+ case 2:
+ case 3:
+ Toast.makeText(getContext(), item.getText(), Toast.LENGTH_SHORT).show();
+ break;
+ }
+ return false;
+ }
+ }).setTitle(title);
+ break;
+ case R.id.iv_refrish:
break;
}
}
@@ -257,7 +301,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
requestPermissions(permission, 0);
} else {
// 此处为某些5.0动态权限的手机
- //goSystemLocationActivity(); // TODO =======待删除======
+ // goSystemLocationActivity(); // TODO =======待删除======
tipPermissionAlertDialog();
}
}
diff --git a/app/src/main/java/com/navinfo/outdoor/util/BounceZoomScrollView.java b/app/src/main/java/com/navinfo/outdoor/util/BounceZoomScrollView.java
new file mode 100644
index 0000000..12242c4
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/util/BounceZoomScrollView.java
@@ -0,0 +1,258 @@
+package com.navinfo.outdoor.util;
+
+
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.TranslateAnimation;
+import android.widget.ScrollView;
+
+/**
+ * 注意使用的时候需要放大的view,一般是第一个RelativeLayout或者LinearLayout。要加上 android:layout_gravity="center_horizontal"
+
+ */
+
+public class BounceZoomScrollView extends ScrollView {
+
+ private static final String TAG = "BounceScrollView";
+
+
+ //----头部收缩属性--------
+
+ // 记录首次按下位置
+ private float mFirstPosition = 0;
+ // 头部图片是否正在放大
+ private Boolean mScaling = false;
+ private View dropZoomView;//需要被放大的view
+ private int dropZoomViewWidth;
+ private int dropZoomViewHeight;
+ //----头部收缩属性end--------
+
+ //------尾部收缩属性--------
+ private View inner;// 子View
+ private float y;// 点击时y坐标
+ private Rect normal = new Rect();// 矩形(这里只是个形式,只是用于判断是否需要动画.)
+
+ private boolean isCount = false;// 是否开始计算
+ //最后的坐标
+ private float lastX = 0;
+ private float lastY = 0;
+ //当前坐标
+ private float currentX = 0;
+ private float currentY = 0;
+ //移动的坐标量
+ private float distanceX = 0;
+ private float distanceY = 0;
+ private boolean upDownSlide = false; //判断上下滑动的flag
+ //------尾部收缩属性end--------
+
+ public BounceZoomScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ //初始化
+ private void init() {
+ setOverScrollMode(OVER_SCROLL_NEVER);
+
+ if (getChildAt(0) != null) {
+ inner = getChildAt(0);//这个是底部收缩的view
+
+ //头部收缩的
+ ViewGroup vg = (ViewGroup) getChildAt(0);
+ if (vg.getChildAt(0) != null) {
+ dropZoomView = vg.getChildAt(0);
+ }
+ }
+ }
+
+
+ /***
+ * 生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后. 即使子类覆盖了 onFinishInflate
+ * 方法,也应该调用父类的方法,使该方法得以执行.
+ */
+ @Override
+ protected void onFinishInflate() {
+ //初始化
+ init();
+ super.onFinishInflate();
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+
+ //这里只是计算尾部坐标
+ currentX = ev.getX();
+ currentY = ev.getY();
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_MOVE:
+ distanceX = currentX - lastX;
+ distanceY = currentY - lastY;
+ if (Math.abs(distanceX) < Math.abs(distanceY) && Math.abs(distanceY) > 12) {
+ upDownSlide = true;
+ }
+ break;
+ }
+ lastX = currentX;
+ lastY = currentY;
+ if (upDownSlide && inner != null) commOnTouchEvent(ev);
+ return super.dispatchTouchEvent(ev);
+ }
+
+ /***
+ * 触摸事件
+ *
+ * @param ev
+ */
+ public void commOnTouchEvent(MotionEvent ev) {
+
+ //头部缩放计算
+ if (dropZoomViewWidth <= 0 || dropZoomViewHeight <= 0) {
+ dropZoomViewWidth = dropZoomView.getMeasuredWidth();
+ dropZoomViewHeight = dropZoomView.getMeasuredHeight();
+ }
+
+ switch (ev.getAction()) {
+
+ case MotionEvent.ACTION_UP:
+ //手指离开后头部恢复图片
+ mScaling = false;
+ replyImage();
+
+ // 手指松开尾部恢复
+ if (isNeedAnimation()) {
+ animation();
+ isCount = false;
+ }
+ clear0();
+ break;
+
+ //这里头尾分开处理,互不干扰
+ case MotionEvent.ACTION_MOVE:
+ //尾部处理
+ final float preY = y;// 按下时的y坐标
+ float nowY = ev.getY();// 时时y坐标
+ int deltaY = (int) (preY - nowY);// 滑动距离
+ if (!isCount) {
+ deltaY = 0; // 在这里要归0.
+ }
+ y = nowY;
+ // 当滚动到最上或者最下时就不会再滚动,这时移动布局
+ if (isNeedMove()) {
+ // 初始化头部矩形
+ if (normal.isEmpty()) {
+ // 保存正常的布局位置
+ normal.set(inner.getLeft(), inner.getTop(),
+ inner.getRight(), inner.getBottom());
+ }
+ // 移动布局
+ inner.layout(inner.getLeft(), inner.getTop() - deltaY / 2,
+ inner.getRight(), inner.getBottom() - deltaY / 2);
+ }
+ isCount = true;
+ //尾部处理end
+
+ //头部处理
+ if (!mScaling) {
+ if (getScrollY() == 0) {
+ mFirstPosition = ev.getY();// 滚动到顶部时记录位置,否则正常返回
+ } else {
+ break;
+ }
+ }
+ int distance = (int) ((ev.getY() - mFirstPosition) * 0.6); // 滚动距离乘以一个系数
+ if (distance < 0) { // 当前位置比记录位置要小,正常返回
+ break;
+ }
+ // 处理放大
+ mScaling = true;
+ setZoom(1 + distance);
+ //头部处理end
+
+ break;
+
+ }
+ }
+
+ /***
+ * 回缩动画,尾部往下缩动画
+ */
+ public void animation() {
+ // 开启移动动画
+ TranslateAnimation ta = new TranslateAnimation(0, 0, inner.getTop(),
+ normal.top);
+ ta.setDuration(200);
+ inner.startAnimation(ta);
+ // 设置回到正常的布局位置
+ inner.layout(normal.left, normal.top, normal.right, normal.bottom);
+
+ normal.setEmpty();
+
+ }
+
+ // 是否需要开启动画
+ public boolean isNeedAnimation() {
+ return !normal.isEmpty();
+ }
+
+
+ // 回弹动画,header往上缩动画 (使用了属性动画)
+ public void replyImage() {
+ final float distance = dropZoomView.getMeasuredWidth() - dropZoomViewWidth;
+
+ // 设置动画
+ ValueAnimator anim = ObjectAnimator.ofFloat(0.0F, 1.0F).setDuration((long) (distance * 0.7));
+
+ anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ float cVal = (Float) animation.getAnimatedValue();
+ setZoom(distance - ((distance) * cVal));
+ }
+ });
+ anim.start();
+
+ }
+
+ //头部缩放
+ public void setZoom(float s) {
+ if (dropZoomViewHeight <= 0 || dropZoomViewWidth <= 0) {
+ return;
+ }
+ ViewGroup.LayoutParams lp = dropZoomView.getLayoutParams();
+ lp.width = (int) (dropZoomViewWidth + s);
+ lp.height = (int) (dropZoomViewHeight * ((dropZoomViewWidth + s) / dropZoomViewWidth));
+ dropZoomView.setLayoutParams(lp);
+ }
+
+ /***
+ * 是否需要移动布局 inner.getMeasuredHeight():获取的是控件的总高度
+ *
+ * getHeight():获取的是屏幕的高度
+ *
+ * @return
+ */
+ public boolean isNeedMove() {
+ int offset = inner.getMeasuredHeight() - getHeight();
+ int scrollY = getScrollY();
+ // 0是顶部,后面那个是底部
+ if (scrollY == 0 || scrollY == offset) {
+ return true;
+ }
+ return false;
+ }
+
+ //清理尾部属性值
+ private void clear0() {
+ lastX = 0;
+ lastY = 0;
+ distanceX = 0;
+ distanceY = 0;
+ upDownSlide = false;
+ }
+
+}
diff --git a/app/src/main/res/drawable/push_chongdianzhuang.png b/app/src/main/res/drawable/push_chongdianzhuang.png
new file mode 100644
index 0000000..87d6fae
Binary files /dev/null and b/app/src/main/res/drawable/push_chongdianzhuang.png differ
diff --git a/app/src/main/res/drawable/push_poi.png b/app/src/main/res/drawable/push_poi.png
new file mode 100644
index 0000000..23fb775
Binary files /dev/null and b/app/src/main/res/drawable/push_poi.png differ
diff --git a/app/src/main/res/drawable/push_qingbao.png b/app/src/main/res/drawable/push_qingbao.png
new file mode 100644
index 0000000..29ac907
Binary files /dev/null and b/app/src/main/res/drawable/push_qingbao.png differ
diff --git a/app/src/main/res/drawable/push_road.png b/app/src/main/res/drawable/push_road.png
new file mode 100644
index 0000000..b7840ee
Binary files /dev/null and b/app/src/main/res/drawable/push_road.png differ
diff --git a/app/src/main/res/drawable/underline.xml b/app/src/main/res/drawable/underline.xml
index 06334bc..784bd38 100644
--- a/app/src/main/res/drawable/underline.xml
+++ b/app/src/main/res/drawable/underline.xml
@@ -3,5 +3,5 @@
android:shape="rectangle">
+ android:color="#D1D0CF"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/poi_fragment.xml b/app/src/main/res/layout/poi_fragment.xml
new file mode 100644
index 0000000..b2c92c1
--- /dev/null
+++ b/app/src/main/res/layout/poi_fragment.xml
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/treasure_fragment.xml b/app/src/main/res/layout/treasure_fragment.xml
index 1d70f30..25dfc69 100644
--- a/app/src/main/res/layout/treasure_fragment.xml
+++ b/app/src/main/res/layout/treasure_fragment.xml
@@ -11,8 +11,12 @@
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0" >
+
+
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/user_attestation_fragment.xml b/app/src/main/res/layout/user_attestation_fragment.xml
index cd7d14f..36b2f74 100644
--- a/app/src/main/res/layout/user_attestation_fragment.xml
+++ b/app/src/main/res/layout/user_attestation_fragment.xml
@@ -1,5 +1,6 @@
@@ -41,9 +42,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:orientation="vertical"
- app:layout_constraintEnd_toEndOf="@+id/linear_hint"
- app:layout_constraintStart_toStartOf="@+id/linear_hint"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rl_attestation">
+ android:layout_weight="1"
+ android:background="@mipmap/checkbox" />
+ android:layout_weight="1"
+ android:background="@mipmap/checkbox" />
diff --git a/app/src/main/res/layout/user_data_fragment.xml b/app/src/main/res/layout/user_data_fragment.xml
deleted file mode 100644
index 9062e61..0000000
--- a/app/src/main/res/layout/user_data_fragment.xml
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/withdraw_fragment.xml b/app/src/main/res/layout/withdraw_fragment.xml
index 16233d8..dd8d8c8 100644
--- a/app/src/main/res/layout/withdraw_fragment.xml
+++ b/app/src/main/res/layout/withdraw_fragment.xml
@@ -48,8 +48,8 @@
android:layout_height="200dp"
android:layout_margin="20dp"
android:background="@mipmap/white_bg"
- app:layout_constraintEnd_toEndOf="@+id/linear_hint"
- app:layout_constraintStart_toStartOf="@+id/linear_hint"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rl_withdraw">