修改拍照界面

This commit is contained in:
xiaoyan 2023-01-12 10:27:50 +08:00
parent bd22ede488
commit 3c24038fd2
16 changed files with 425 additions and 365 deletions

View File

@ -12,8 +12,8 @@ android {
applicationId "com.navinfo.outdoor"
minSdkVersion 24
targetSdkVersion 30
versionCode 41
versionName "8.230109"
versionCode 42
versionName "8.230110"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {

View File

@ -204,6 +204,7 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
private boolean isMapSlide = false; // 地图是否为靠在侧边的小图模式
private ImageView ivZoomAdd/*zoom放大*/, ivZoomDel/*zoom缩小*/, ivLocation/*定位按钮*/,
ivPicRoadImage/*道路拍摄水平线*/, ivPicVideoImage/*视频拍摄水平线*/;
private View layerMapController;
private ImageView btnSwitch; // 切换地图大小的按钮
private ViewGroup layerChange; // 切换地图和相机的父控件
private BitmapDescriptor pileDescriptor = BitmapDescriptorFactory
@ -274,6 +275,7 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
tvMapView.setOnClickListener(this);
ivZoomAdd = findViewById(R.id.iv_zoom_add);
ivZoomAdd.setOnClickListener(this);
layerMapController = findViewById(R.id.layer_map_controller);
ivZoomDel = findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
ivLocation = findViewById(R.id.iv_location);
@ -1596,9 +1598,7 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
//小图
private void initMapBig() {
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
ivLocation.setVisibility(View.GONE);
layerMapController.setVisibility(View.GONE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
// 道路水平方向图标显示
ivPicRoadImage.setVisibility(View.VISIBLE);
@ -1607,9 +1607,7 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
//大图
private void initMapShort() {
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
layerMapController.setVisibility(View.VISIBLE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
// 道路水平方向图标不显示
ivPicRoadImage.setVisibility(View.GONE);

View File

@ -139,6 +139,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
private CheckBox capturePicture; //拍照
private File paperFile, logFile;
private ImageView ivZoomAdd, ivZoomDel, ivLocation, ivPicRoadImage, ivPicVideoImage, imageView;
private View layerMapController;
private MyLocation oldCurrentLocation = null;
private Timer timer;
private TimerTask timerTask;
@ -290,6 +291,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
CameraLogger.setLogLevel(CameraLogger.LEVEL_VERBOSE);
ivZoomAdd = findViewById(R.id.iv_zoom_add);
ivZoomAdd.setOnClickListener(this);
layerMapController = findViewById(R.id.layer_map_controller);
ivZoomDel = findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
ivLocation = findViewById(R.id.iv_location);
@ -787,9 +789,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
//小图
private void initMapBig() {
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
ivLocation.setVisibility(View.GONE);
layerMapController.setVisibility(View.GONE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
// 道路水平方向图标显示
ivPicRoadImage.setVisibility(View.VISIBLE);
@ -798,9 +798,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
//大图
private void initMapShort() {
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
layerMapController.setVisibility(View.VISIBLE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
// 道路水平方向图标显示
ivPicRoadImage.setVisibility(View.GONE);

View File

@ -5,7 +5,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;
@ -15,15 +14,12 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.NumberPicker;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.widget.NestedScrollView;
@ -37,7 +33,6 @@ import com.hjq.permissions.XXPermissions;
import com.kongzue.dialog.interfaces.OnDialogButtonClickListener;
import com.kongzue.dialog.util.BaseDialog;
import com.kongzue.dialog.util.DialogSettings;
import com.kongzue.dialog.v3.CustomDialog;
import com.kongzue.dialog.v3.MessageDialog;
import com.kongzue.dialog.v3.WaitDialog;
import com.lzy.okgo.model.HttpParams;
@ -79,17 +74,14 @@ import org.locationtech.jts.geom.Geometry;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 寻宝-上报弹窗-交通枢纽
* 寻宝-上报弹窗-建筑物内部
*/
@RequiresApi(api = Build.VERSION_CODES.N)
public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickListener {
private EditText etDesc;
private Spinner spnRoadName;
@ -103,8 +95,6 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
private StringBuilder poiVideoBuilder;
private LatLng rearLatLng;
private boolean booleanExtra = true;
private TextView btnSelectFloor;
private String[] items;
public static AreaHubFragment newInstance(Bundle bundle) {
AreaHubFragment fragment = new AreaHubFragment();
@ -297,65 +287,18 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
private void initShowPoi() {
// 添加信息
assert getArguments() != null;
btnSelectFloor = findViewById(R.id.btn_select_floor);
showPoiEntity = (PoiEntity) getArguments().getSerializable("poiEntity");
if (showPoiEntity != null) {
btnSelectFloor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示对话框选择对应的楼层
CustomDialog
.show((AppCompatActivity) getActivity(), R.layout.dialog_select_floor, new CustomDialog.OnBindView() {
@Override
public void onBind(CustomDialog dialog, View v) {
List<String> numValues = new ArrayList<String>();
for (int i = -10; i <= 100; i++) {
if (i == 0) {
continue;
}
numValues.add(i+"");
}
NumberPicker numberPicker = v.findViewById(R.id.number_picker);
numberPicker.setDisplayedValues(numValues.toArray(new String[numValues.size()]));
numberPicker.setMinValue(0);
numberPicker.setMaxValue(numValues.size()-1);
numberPicker.setValue(10); // 设置默认选择1楼
TextView confirmTv = v.findViewById(R.id.btn_select_floor_confirm);
confirmTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int index = numberPicker.getValue();
int floor = Integer.parseInt(numValues.get(index));
btnSelectFloor.setTag(floor);
btnSelectFloor.setText(floor+"");
spnRoadName.setTag(floor+"");
dialog.doDismiss();
}
});
}
})
.setCustomLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT))
.setCustomDialogStyleId(R.style.iOSDialogAnimStyle);
}
});
String name = showPoiEntity.getName();//名称
SpinnerUtils spinnerUtils = new SpinnerUtils();
items = new String[]{"建筑物全景", "建筑物底商", "楼层引导图", "楼层选择"};
if (StringUtils.isEmpty(name)) { // 如果从数据获取的名称为空则设置name显示为默认的第一个选项
String[] items = {"园区外围(含门)", "园区引导图", "园区底商"};
if (StringUtils.isEmpty(name)) {// 如果从数据获取的名称为空则设置name显示为默认的第一个选项
name = items[0];
}
spinnerUtils.initSpinner(getActivity(), spnRoadName, new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (items[position].equals("楼层选择")) {
btnSelectFloor.setVisibility(View.VISIBLE);
btnSelectFloor.setTag(null);
btnSelectFloor.setText("楼层");
spnRoadName.setTag(null);
} else {
btnSelectFloor.setVisibility(View.GONE);
spnRoadName.setTag(items[position]);
}
spnRoadName.setTag(items[position]);
}
@Override
@ -363,11 +306,6 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
}
}, name, items);
if (name.endsWith("")) {
btnSelectFloor.setVisibility(View.VISIBLE);
btnSelectFloor.setText(name);
btnSelectFloor.setTag(name.replace("", ""));
}
String geoWkt = showPoiEntity.getGeoWkt();
if (geoWkt != null) {
String geo = Geohash.getInstance().decode(geoWkt);
@ -513,44 +451,36 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
initPoiSaveLocal(false);
break;
case R.id.tv_short://点击拍摄
// 检查是否选择了楼层选择选项
checkAreaType(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (spnRoadName.getTag()!=null) { // 用户已经设置楼层信息
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了拍摄的按钮 ,");
double latitude = LocationLifeCycle.getInstance().getMainLocation().getLatitude();
double longitude = LocationLifeCycle.getInstance().getMainLocation().getLongitude();
LatLng startLatLng = new LatLng(latitude, longitude);// 用户当前位置
double geometry = GeometryTools.distanceToDouble(startLatLng, latLng);// 起點 于用戶的距離
double rearGeometry = GeometryTools.distanceToDouble(startLatLng, rearLatLng);// 終點于用戶的距離
if (geometry > rearGeometry) {//用戶在终点开始作业
if (rearGeometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
} else {//用户在起点开始作业
if (geometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
}
Intent intents = new Intent(getActivity(), PicturesActivity.class);
File filePath = AWMp4ParserHelper.getInstance().obtainWebpFilePath(new File(Constant.PICTURE_FOLDER, showPoiEntity.getId()).getAbsolutePath());
intents.putExtra(Constant.INTENT_JPG_PATH, filePath.getAbsolutePath());
intents.putExtra(Constant.INTENT_TYPE, showPoiEntity.getType());
intents.putExtra(Constant.INTENT_GEO_WKT, showPoiEntity.getGeoWkt());
intents.putExtra(Constant.INTENT_DETAIL, showPoiEntity.getDetail());
int gpsRssi = LocationLifeCycle.getInstance().getTencentLocation().getGPSRssi();
if (gpsRssi == 0) {
intents.putExtra(Constant.INTENT_BOOLEAN, false);
} else {
intents.putExtra(Constant.INTENT_BOOLEAN, true);
}
startActivityForResult(intents, 0x101);
}
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了拍摄的按钮 ,");
double latitude = LocationLifeCycle.getInstance().getMainLocation().getLatitude();
double longitude = LocationLifeCycle.getInstance().getMainLocation().getLongitude();
LatLng startLatLng = new LatLng(latitude, longitude);// 用户当前位置
double geometry = GeometryTools.distanceToDouble(startLatLng, latLng);// 起點 于用戶的距離
double rearGeometry = GeometryTools.distanceToDouble(startLatLng, rearLatLng);// 終點于用戶的距離
if (geometry > rearGeometry) {//用戶在终点开始作业
if (rearGeometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
});
} else {//用户在起点开始作业
if (geometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
}
Intent intents = new Intent(getActivity(), PicturesActivity.class);
File filePath = AWMp4ParserHelper.getInstance().obtainWebpFilePath(new File(Constant.PICTURE_FOLDER, showPoiEntity.getId()).getAbsolutePath());
intents.putExtra(Constant.INTENT_JPG_PATH, filePath.getAbsolutePath());
intents.putExtra(Constant.INTENT_TYPE, showPoiEntity.getType());
intents.putExtra(Constant.INTENT_GEO_WKT, showPoiEntity.getGeoWkt());
intents.putExtra(Constant.INTENT_DETAIL, showPoiEntity.getDetail());
int gpsRssi = LocationLifeCycle.getInstance().getTencentLocation().getGPSRssi();
if (gpsRssi == 0) {
intents.putExtra(Constant.INTENT_BOOLEAN, false);
} else {
intents.putExtra(Constant.INTENT_BOOLEAN, true);
}
startActivityForResult(intents, 0x101);
break;
case R.id.tv_combo://自动连拍:
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了自动连拍的按钮 ,");
@ -583,10 +513,6 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
startActivityForResult(intent, 0x102);
break;
case R.id.btn_poi_video_upload:
if (spnRoadName.getTag() == null) {
com.github.lazylibrary.util.ToastUtils.showToast(getActivity(), "没有POI名称无法保存");
return;
}
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了上传的按钮 ,");
PoiEntity poiEntity = initPoiEntityByUI(showPoiEntity);
if (poiEntity.getTaskStatus() == 1 || poiEntity.getTaskStatus() == 2 || poiEntity.getTaskStatus() == 0 || poiEntity.getTaskStatus() == 5) {
@ -599,34 +525,6 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
}
}
private void checkAreaType(View.OnClickListener listener) {
String message;
if (spnRoadName.getTag() == null || spnRoadName.getTag().toString().endsWith("")) { // 名称下拉框为空说明选择了 楼层选择但是没选择楼层层数
message = "请先选择楼层!";
if (spnRoadName.getTag()!=null&&spnRoadName.getTag().toString().endsWith("")) { // 如果当前spn的tag是X层这样的tag说明已经选择了楼层层数
message = "请首先拍摄楼层证明";
}
MessageDialog.show((AppCompatActivity) getActivity(), "提示", message)
.setCustomDialogStyleId(R.style.iOSDialogAnimStyle)
.setAlign(BaseDialog.ALIGN.DEFAULT)
.setOnOkButtonClickListener(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
if (spnRoadName.getTag()!=null) { // 只有tag为非空时才可以继续走拍照流程
listener.onClick(v);
}
if (baseDialog.isShow) {
baseDialog.doDismiss();
}
return true;
}
});
} else { // 名称下拉框选项不为空说明选择的不是 楼层选择 选项
listener.onClick(spnRoadName);
return;
}
}
public void initPoiSaveLocal(boolean isLocal) {
if (spnRoadName.getTag() == null) {
com.github.lazylibrary.util.ToastUtils.showToast(getActivity(), "没有POI名称无法保存");
@ -851,7 +749,7 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值
edit.putString("poiEntity", newPoiEntity);
edit.putInt("roadVideoType", 2);
edit.putInt("roadVideoType", 3);
//提交新值必须执行否则前面的操作都无效
edit.apply();
Log.d("TAG", "initRoadSharePre: " + newPoiEntity);
@ -949,10 +847,8 @@ public class AreaHubFragment extends BaseDrawerFragment implements View.OnClickL
@Override
protected PoiEntity initPoiEntityByUI(PoiEntity poiEntity) {
if (spnRoadName.getTag()!=null) {
String roadName = spnRoadName.getTag().toString();
poiEntity.setName(roadName);
}
String roadName = spnRoadName.getTag().toString();
poiEntity.setName(roadName);
// if (!roadName.equals("")) {
// poiEntity.setName(roadName);
// } else {

View File

@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;
@ -14,12 +15,15 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.NumberPicker;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.widget.NestedScrollView;
@ -33,6 +37,7 @@ import com.hjq.permissions.XXPermissions;
import com.kongzue.dialog.interfaces.OnDialogButtonClickListener;
import com.kongzue.dialog.util.BaseDialog;
import com.kongzue.dialog.util.DialogSettings;
import com.kongzue.dialog.v3.CustomDialog;
import com.kongzue.dialog.v3.MessageDialog;
import com.kongzue.dialog.v3.WaitDialog;
import com.lzy.okgo.model.HttpParams;
@ -74,15 +79,17 @@ import org.locationtech.jts.geom.Geometry;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 寻宝-上报弹窗-建筑物内部
* 寻宝-上报弹窗-交通枢纽
*/
public class BuildingInsideFragment extends BaseDrawerFragment implements View.OnClickListener {
@RequiresApi(api = Build.VERSION_CODES.N)
public class BuildingInFragment extends BaseDrawerFragment implements View.OnClickListener {
private EditText etDesc;
private Spinner spnRoadName;
private ImageView ivPoiVideoPicture;
@ -95,9 +102,11 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
private StringBuilder poiVideoBuilder;
private LatLng rearLatLng;
private boolean booleanExtra = true;
private TextView btnSelectFloor;
private String[] items;
public static BuildingInsideFragment newInstance(Bundle bundle) {
BuildingInsideFragment fragment = new BuildingInsideFragment();
public static BuildingInFragment newInstance(Bundle bundle) {
BuildingInFragment fragment = new BuildingInFragment();
fragment.setArguments(bundle);
return fragment;
}
@ -287,18 +296,65 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
private void initShowPoi() {
// 添加信息
assert getArguments() != null;
btnSelectFloor = findViewById(R.id.btn_select_floor);
showPoiEntity = (PoiEntity) getArguments().getSerializable("poiEntity");
if (showPoiEntity != null) {
btnSelectFloor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示对话框选择对应的楼层
CustomDialog
.show((AppCompatActivity) getActivity(), R.layout.dialog_select_floor, new CustomDialog.OnBindView() {
@Override
public void onBind(CustomDialog dialog, View v) {
List<String> numValues = new ArrayList<String>();
for (int i = -10; i <= 100; i++) {
if (i == 0) {
continue;
}
numValues.add(i+"");
}
NumberPicker numberPicker = v.findViewById(R.id.number_picker);
numberPicker.setDisplayedValues(numValues.toArray(new String[numValues.size()]));
numberPicker.setMinValue(0);
numberPicker.setMaxValue(numValues.size()-1);
numberPicker.setValue(10); // 设置默认选择1楼
TextView confirmTv = v.findViewById(R.id.btn_select_floor_confirm);
confirmTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int index = numberPicker.getValue();
int floor = Integer.parseInt(numValues.get(index));
btnSelectFloor.setTag(floor);
btnSelectFloor.setText(floor+"");
spnRoadName.setTag(floor+"");
dialog.doDismiss();
}
});
}
})
.setCustomLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT))
.setCustomDialogStyleId(R.style.iOSDialogAnimStyle);
}
});
String name = showPoiEntity.getName();//名称
SpinnerUtils spinnerUtils = new SpinnerUtils();
String[] items = {"园区外围(含门)", "园区引导图", "园区底商"};
if (StringUtils.isEmpty(name)) {// 如果从数据获取的名称为空则设置name显示为默认的第一个选项
items = new String[]{"建筑物全景", "建筑物底商", "楼层引导图", "楼层选择"};
if (StringUtils.isEmpty(name)) { // 如果从数据获取的名称为空则设置name显示为默认的第一个选项
name = items[0];
}
spinnerUtils.initSpinner(getActivity(), spnRoadName, new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spnRoadName.setTag(items[position]);
if (items[position].equals("楼层选择")) {
btnSelectFloor.setVisibility(View.VISIBLE);
btnSelectFloor.setTag(null);
btnSelectFloor.setText("楼层");
spnRoadName.setTag(null);
} else {
btnSelectFloor.setVisibility(View.GONE);
spnRoadName.setTag(items[position]);
}
}
@Override
@ -306,6 +362,11 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
}
}, name, items);
if (name.endsWith("")) {
btnSelectFloor.setVisibility(View.VISIBLE);
btnSelectFloor.setText(name);
btnSelectFloor.setTag(name.replace("", ""));
}
String geoWkt = showPoiEntity.getGeoWkt();
if (geoWkt != null) {
String geo = Geohash.getInstance().decode(geoWkt);
@ -451,36 +512,44 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
initPoiSaveLocal(false);
break;
case R.id.tv_short://点击拍摄
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了拍摄的按钮 ,");
double latitude = LocationLifeCycle.getInstance().getMainLocation().getLatitude();
double longitude = LocationLifeCycle.getInstance().getMainLocation().getLongitude();
LatLng startLatLng = new LatLng(latitude, longitude);// 用户当前位置
double geometry = GeometryTools.distanceToDouble(startLatLng, latLng);// 起點 于用戶的距離
double rearGeometry = GeometryTools.distanceToDouble(startLatLng, rearLatLng);// 終點于用戶的距離
if (geometry > rearGeometry) {//用戶在终点开始作业
if (rearGeometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
// 检查是否选择了楼层选择选项
checkAreaType(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (spnRoadName.getTag()!=null) { // 用户已经设置楼层信息
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了拍摄的按钮 ,");
double latitude = LocationLifeCycle.getInstance().getMainLocation().getLatitude();
double longitude = LocationLifeCycle.getInstance().getMainLocation().getLongitude();
LatLng startLatLng = new LatLng(latitude, longitude);// 用户当前位置
double geometry = GeometryTools.distanceToDouble(startLatLng, latLng);// 起點 于用戶的距離
double rearGeometry = GeometryTools.distanceToDouble(startLatLng, rearLatLng);// 終點于用戶的距離
if (geometry > rearGeometry) {//用戶在终点开始作业
if (rearGeometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
} else {//用户在起点开始作业
if (geometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
}
Intent intents = new Intent(getActivity(), PicturesActivity.class);
File filePath = AWMp4ParserHelper.getInstance().obtainWebpFilePath(new File(Constant.PICTURE_FOLDER, showPoiEntity.getId()).getAbsolutePath());
intents.putExtra(Constant.INTENT_JPG_PATH, filePath.getAbsolutePath());
intents.putExtra(Constant.INTENT_TYPE, showPoiEntity.getType());
intents.putExtra(Constant.INTENT_GEO_WKT, showPoiEntity.getGeoWkt());
intents.putExtra(Constant.INTENT_DETAIL, showPoiEntity.getDetail());
int gpsRssi = LocationLifeCycle.getInstance().getTencentLocation().getGPSRssi();
if (gpsRssi == 0) {
intents.putExtra(Constant.INTENT_BOOLEAN, false);
} else {
intents.putExtra(Constant.INTENT_BOOLEAN, true);
}
startActivityForResult(intents, 0x101);
}
}
} else {//用户在起点开始作业
if (geometry > 5000) {
ToastUtils.Message(getActivity(), "用户距离作业终点五公里以内才能拍摄");
return;
}
}
Intent intents = new Intent(getActivity(), PicturesActivity.class);
File filePath = AWMp4ParserHelper.getInstance().obtainWebpFilePath(new File(Constant.PICTURE_FOLDER, showPoiEntity.getId()).getAbsolutePath());
intents.putExtra(Constant.INTENT_JPG_PATH, filePath.getAbsolutePath());
intents.putExtra(Constant.INTENT_TYPE, showPoiEntity.getType());
intents.putExtra(Constant.INTENT_GEO_WKT, showPoiEntity.getGeoWkt());
intents.putExtra(Constant.INTENT_DETAIL, showPoiEntity.getDetail());
int gpsRssi = LocationLifeCycle.getInstance().getTencentLocation().getGPSRssi();
if (gpsRssi == 0) {
intents.putExtra(Constant.INTENT_BOOLEAN, false);
} else {
intents.putExtra(Constant.INTENT_BOOLEAN, true);
}
startActivityForResult(intents, 0x101);
});
break;
case R.id.tv_combo://自动连拍:
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了自动连拍的按钮 ,");
@ -513,6 +582,10 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
startActivityForResult(intent, 0x102);
break;
case R.id.btn_poi_video_upload:
if (spnRoadName.getTag() == null) {
com.github.lazylibrary.util.ToastUtils.showToast(getActivity(), "没有POI名称无法保存");
return;
}
poiVideoBuilder.append(TimestampUtil.time()).append(",").append("点击了上传的按钮 ,");
PoiEntity poiEntity = initPoiEntityByUI(showPoiEntity);
if (poiEntity.getTaskStatus() == 1 || poiEntity.getTaskStatus() == 2 || poiEntity.getTaskStatus() == 0 || poiEntity.getTaskStatus() == 5) {
@ -525,6 +598,34 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
}
}
private void checkAreaType(View.OnClickListener listener) {
String message;
if (spnRoadName.getTag() == null || spnRoadName.getTag().toString().endsWith("")) { // 名称下拉框为空说明选择了 楼层选择但是没选择楼层层数
message = "请先选择楼层!";
if (spnRoadName.getTag()!=null&&spnRoadName.getTag().toString().endsWith("")) { // 如果当前spn的tag是X层这样的tag说明已经选择了楼层层数
message = "请首先拍摄楼层证明";
}
MessageDialog.show((AppCompatActivity) getActivity(), "提示", message)
.setCustomDialogStyleId(R.style.iOSDialogAnimStyle)
.setAlign(BaseDialog.ALIGN.DEFAULT)
.setOnOkButtonClickListener(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
if (spnRoadName.getTag()!=null) { // 只有tag为非空时才可以继续走拍照流程
listener.onClick(v);
}
if (baseDialog.isShow) {
baseDialog.doDismiss();
}
return true;
}
});
} else { // 名称下拉框选项不为空说明选择的不是 楼层选择 选项
listener.onClick(spnRoadName);
return;
}
}
public void initPoiSaveLocal(boolean isLocal) {
if (spnRoadName.getTag() == null) {
com.github.lazylibrary.util.ToastUtils.showToast(getActivity(), "没有POI名称无法保存");
@ -749,7 +850,7 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值
edit.putString("poiEntity", newPoiEntity);
edit.putInt("roadVideoType", 3);
edit.putInt("roadVideoType", 2);
//提交新值必须执行否则前面的操作都无效
edit.apply();
Log.d("TAG", "initRoadSharePre: " + newPoiEntity);
@ -847,8 +948,10 @@ public class BuildingInsideFragment extends BaseDrawerFragment implements View.O
@Override
protected PoiEntity initPoiEntityByUI(PoiEntity poiEntity) {
String roadName = spnRoadName.getTag().toString();
poiEntity.setName(roadName);
if (spnRoadName.getTag()!=null) {
String roadName = spnRoadName.getTag().toString();
poiEntity.setName(roadName);
}
// if (!roadName.equals("")) {
// poiEntity.setName(roadName);
// } else {

View File

@ -22,10 +22,8 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Spinner;
@ -53,20 +51,16 @@ import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.kongzue.dialog.interfaces.OnDialogButtonClickListener;
import com.kongzue.dialog.util.BaseDialog;
import com.kongzue.dialog.util.DialogSettings;
import com.kongzue.dialog.v3.CustomDialog;
import com.kongzue.dialog.v3.MessageDialog;
import com.kongzue.dialog.v3.ShareDialog;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.model.HttpParams;
import com.lzy.okgo.model.Progress;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.activity.AutoTakePictureActivity;
import com.navinfo.outdoor.activity.FragmentManagement;
import com.navinfo.outdoor.activity.HomeActivity;
import com.navinfo.outdoor.activity.WebActivity;
import com.navinfo.outdoor.adapter.MarkerAdapter;
import com.navinfo.outdoor.api.Constant;
import com.navinfo.outdoor.api.UserApplication;
import com.navinfo.outdoor.base.BaseDrawerFragment;
import com.navinfo.outdoor.base.BaseFragment;
import com.navinfo.outdoor.bean.GetPhoneBean;
@ -79,7 +73,6 @@ import com.navinfo.outdoor.http.HttpInterface;
import com.navinfo.outdoor.http.OkGoBuilder;
import com.navinfo.outdoor.http.UploadCallBack;
import com.navinfo.outdoor.room.ChargingPileEntity;
import com.navinfo.outdoor.room.PoiDatabase;
import com.navinfo.outdoor.room.PoiEntity;
import com.navinfo.outdoor.util.FlushTokenUtil;
import com.navinfo.outdoor.util.Geohash;
@ -114,13 +107,10 @@ import com.tencent.tencentmap.mapsdk.maps.model.Polygon;
import com.tencent.tencentmap.mapsdk.maps.model.PolygonOptions;
import com.tencent.tencentmap.mapsdk.maps.model.Polyline;
import com.tencent.tencentmap.mapsdk.maps.model.PolylineOptions;
import com.umeng.message.UmengNotificationClickHandler;
import com.umeng.message.entity.UMessage;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiPoint;
import org.locationtech.jts.geom.Point;
import org.greenrobot.eventbus.EventBus;
@ -131,7 +121,6 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -1230,10 +1219,10 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
TrafficHubFragment trafficHubFragment = TrafficHubFragment.newInstance(bundle);
showSlidingFragment(trafficHubFragment);
} else if (roadVideoType == 2) {
AreaHubFragment areaHubFragment = AreaHubFragment.newInstance(bundle);
BuildingInFragment areaHubFragment = BuildingInFragment.newInstance(bundle);
showSlidingFragment(areaHubFragment);
} else if (roadVideoType == 3) {
BuildingInsideFragment buildingInsideFragment = BuildingInsideFragment.newInstance(bundle);
AreaHubFragment buildingInsideFragment = AreaHubFragment.newInstance(bundle);
showSlidingFragment(buildingInsideFragment);
}
initRemovePoiSharePre();
@ -1486,7 +1475,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
showSlidingFragment(areaHubFragment);
XLog.d("点击弹窗上的区域设施");
} else if (item.getText().equals("建筑物内部")) {
BuildingInsideFragment buildingInsideFragment = BuildingInsideFragment.newInstance(bundle);
BuildingInFragment buildingInsideFragment = BuildingInFragment.newInstance(bundle);
showSlidingFragment(buildingInsideFragment);
XLog.d("点击弹窗上的建筑物内部");
}
@ -1539,14 +1528,14 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
fragmentTransaction.hide(trafficHubFragment);
}
}
if (!(fragment instanceof AreaHubFragment)) {
AreaHubFragment areaHubFragment = (AreaHubFragment) supportFragmentManager.findFragmentByTag(AreaHubFragment.class.getName());
if (!(fragment instanceof BuildingInFragment)) {
BuildingInFragment areaHubFragment = (BuildingInFragment) supportFragmentManager.findFragmentByTag(BuildingInFragment.class.getName());
if (areaHubFragment != null) {
fragmentTransaction.hide(areaHubFragment);
}
}
if (!(fragment instanceof BuildingInsideFragment)) {
BuildingInsideFragment buildingInsideFragment = (BuildingInsideFragment) supportFragmentManager.findFragmentByTag(BuildingInsideFragment.class.getName());
if (!(fragment instanceof AreaHubFragment)) {
AreaHubFragment buildingInsideFragment = (AreaHubFragment) supportFragmentManager.findFragmentByTag(AreaHubFragment.class.getName());
if (buildingInsideFragment != null) {
fragmentTransaction.hide(buildingInsideFragment);
}

View File

@ -3,8 +3,8 @@ package com.navinfo.outdoor.http;
public class HttpInterface {
// public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP
public static final String IPm = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
public static final String USER_PATH = "/user/";//我的
public static final String MSG_LIST_PATH = "/msgList/";//发现
public static final String USER_LOGIN_PATH = "/userlogin/";//登录

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10s10,-4.48 10,-10C22,6.48 17.52,2 12,2zM12.06,19v-2.01c-0.02,0 -0.04,0 -0.06,0c-1.28,0 -2.56,-0.49 -3.54,-1.46c-1.71,-1.71 -1.92,-4.35 -0.64,-6.29l1.1,1.1c-0.71,1.33 -0.53,3.01 0.59,4.13c0.7,0.7 1.62,1.03 2.54,1.01v-2.14l2.83,2.83L12.06,19zM16.17,14.76l-1.1,-1.1c0.71,-1.33 0.53,-3.01 -0.59,-4.13C13.79,8.84 12.9,8.5 12,8.5c-0.02,0 -0.04,0 -0.06,0v2.15L9.11,7.83L11.94,5v2.02c1.3,-0.02 2.61,0.45 3.6,1.45C17.24,10.17 17.45,12.82 16.17,14.76z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#8C8C8C"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10s10,-4.48 10,-10C22,6.48 17.52,2 12,2zM12.06,19v-2.01c-0.02,0 -0.04,0 -0.06,0c-1.28,0 -2.56,-0.49 -3.54,-1.46c-1.71,-1.71 -1.92,-4.35 -0.64,-6.29l1.1,1.1c-0.71,1.33 -0.53,3.01 0.59,4.13c0.7,0.7 1.62,1.03 2.54,1.01v-2.14l2.83,2.83L12.06,19zM16.17,14.76l-1.1,-1.1c0.71,-1.33 0.53,-3.01 -0.59,-4.13C13.79,8.84 12.9,8.5 12,8.5c-0.02,0 -0.04,0 -0.06,0v2.15L9.11,7.83L11.94,5v2.02c1.3,-0.02 2.61,0.45 3.6,1.45C17.24,10.17 17.45,12.82 16.17,14.76z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M20.94,11c-0.46,-4.17 -3.77,-7.48 -7.94,-7.94V1h-2v2.06C6.83,3.52 3.52,6.83 3.06,11H1v2h2.06c0.46,4.17 3.77,7.48 7.94,7.94V23h2v-2.06c4.17,-0.46 7.48,-3.77 7.94,-7.94H23v-2h-2.06zM12,19c-3.87,0 -7,-3.13 -7,-7s3.13,-7 7,-7 7,3.13 7,7 -3.13,7 -7,7z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,13H5v-2h14v2z"/>
</vector>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/ic_baseline_change_circle_24_press"/> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_baseline_change_circle_24_press"/> <!-- focused -->
<item android:state_selected="true"
android:drawable="@drawable/ic_baseline_change_circle_24_press"/>
<item android:state_checked="true"
android:drawable="@drawable/ic_baseline_change_circle_24_press"/>
<item android:state_enabled="false"
android:drawable="@drawable/ic_baseline_change_circle_24_press"/>
<item android:drawable="@drawable/ic_baseline_change_circle_24" /> <!-- default -->
</selector>

View File

@ -48,7 +48,7 @@
android:background="@android:color/transparent"
app:layout_constraintHeight_default="percent"
app:layout_constraintHeight_percent="0.4"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="0.4" />
@ -80,26 +80,36 @@
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout>
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginEnd="25dp"
android:src="@mipmap/zoom_add"
<LinearLayout
android:id="@+id/layer_map_controller"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/btn_stop_picture"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:padding="@dimen/default_widget_padding"
app:layout_constraintBottom_toTopOf="@id/btn_stop_picture"
app:layout_constraintRight_toRightOf="parent">
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:src="@drawable/ic_baseline_add_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintBottom_toTopOf="@+id/btn_stop_picture"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_zoom_del"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:src="@mipmap/zoom_del"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_add"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" />
<ImageView
android:id="@+id/iv_zoom_del"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:layout_marginTop="@dimen/default_widget_padding"
android:src="@drawable/ic_baseline_sub_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_add"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" />
<!--<CheckBox
android:id="@+id/cb_map_type"
@ -113,88 +123,95 @@
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />-->
<ImageView
android:id="@+id/iv_location"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:background="@drawable/selector_round_bg"
android:src="@mipmap/location_auto_pic"
android:padding="8dp"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
<ImageView
android:id="@+id/iv_location"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:layout_marginTop="@dimen/default_widget_padding"
android:src="@drawable/ic_baseline_location_searching_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
</LinearLayout>
<ImageView
android:id="@+id/btn_switch"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="@drawable/selector_round_bg"
android:layout_marginTop="35dp"
android:src="@drawable/selector_picture_map_change"
android:padding="@dimen/default_widget_padding"
android:layout_marginRight="@dimen/default_widget_padding"
android:text="切换"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_setting"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="设置"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintTop_toBottomOf="@id/btn_switch"
app:layout_constraintRight_toRightOf="parent"></Button>
<Switch
android:id="@+id/location_switch"
android:text="启用定位"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:padding="@dimen/default_widget_padding"
app:layout_constraintTop_toBottomOf="@id/btn_setting"
app:layout_constraintRight_toRightOf="parent"></Switch>
<ImageView
android:id="@+id/img_navi_distance"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/selector_navi_distance"
android:background="@drawable/selector_round_bg"
android:text="按距离自动导航"
android:padding="@dimen/default_widget_padding"
android:layout_margin="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/location_switch"/>
<ImageView
android:id="@+id/img_road_direction"
android:layout_width="36dp"
android:layout_height="36dp"
android:visibility="gone"
android:background="@drawable/selector_round_bg"
android:text="起点方向捕捉"
android:src="@drawable/selector_direction"
app:layout_constraintTop_toTopOf="parent"
android:padding="@dimen/default_widget_padding"
android:layout_margin="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_navi_distance"></ImageView>
android:layout_marginTop="@dimen/fab_margin"
android:orientation="vertical">
<ImageView
android:id="@+id/btn_switch"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:background="@drawable/selector_round_bg"
android:src="@drawable/selector_camera_switch"
android:padding="@dimen/default_widget_padding"
android:text="切换"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/img_location_type"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="@drawable/selector_round_bg"
android:text="定位方式"
android:src="@drawable/selector_location_type"
android:padding="@dimen/default_widget_padding"
android:layout_margin="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_road_direction"></ImageView>
<ImageView
android:id="@+id/img_navi_distance"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:src="@drawable/selector_navi_distance"
android:background="@drawable/selector_round_bg"
android:text="按距离自动导航"
android:padding="@dimen/default_widget_padding"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"/>
<ImageView
android:id="@+id/img_road_direction"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:visibility="gone"
android:background="@drawable/selector_round_bg"
android:text="起点方向捕捉"
android:src="@drawable/selector_direction"
android:padding="@dimen/default_widget_padding"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_navi_distance"></ImageView>
<ImageView
android:id="@+id/img_location_type"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:background="@drawable/selector_round_bg"
android:text="定位方式"
android:src="@drawable/selector_location_type"
android:padding="@dimen/default_widget_padding"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_road_direction"></ImageView>
<Button
android:id="@+id/btn_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="设置"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintTop_toBottomOf="@id/btn_switch"
app:layout_constraintRight_toRightOf="parent"></Button>
<Switch
android:id="@+id/location_switch"
android:text="启用定位"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:padding="@dimen/default_widget_padding"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintTop_toBottomOf="@id/btn_setting"
app:layout_constraintRight_toRightOf="parent"></Switch>
</LinearLayout>
<RadioGroup
android:id="@+id/radio_group_picture"

View File

@ -78,27 +78,36 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout>
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginEnd="25dp"
android:src="@mipmap/zoom_add"
<LinearLayout
android:id="@+id/layer_map_controller"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/btn_stop_picture"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:padding="@dimen/default_widget_padding"
app:layout_constraintBottom_toTopOf="@id/btn_stop_picture"
app:layout_constraintRight_toRightOf="parent">
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:src="@drawable/ic_baseline_add_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintBottom_toTopOf="@+id/btn_stop_picture"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_zoom_del"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:src="@mipmap/zoom_del"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_add"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" />
<ImageView
android:id="@+id/iv_zoom_del"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:layout_marginTop="@dimen/default_widget_padding"
android:src="@drawable/ic_baseline_sub_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_add"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" />
<!--<CheckBox
android:id="@+id/cb_map_type"
@ -112,49 +121,59 @@
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />-->
<ImageView
android:id="@+id/iv_location"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:src="@mipmap/mine_location"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
<ImageView
android:id="@+id/iv_location"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:layout_marginTop="@dimen/default_widget_padding"
android:src="@drawable/ic_baseline_location_searching_24"
android:padding="@dimen/default_widget_padding"
android:background="@drawable/selector_round_bg"
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
</LinearLayout>
<ImageView
android:id="@+id/btn_switch"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:layout_marginEnd="25dp"
android:text="切换"
android:padding="@dimen/default_widget_padding"
android:src="@mipmap/switcher"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置"
android:layout_marginTop="@dimen/default_widget_padding"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/btn_switch"
app:layout_constraintRight_toRightOf="parent"></Button>
<ImageView
android:id="@+id/img_location_type"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="@drawable/selector_round_bg"
android:text="定位方式"
android:src="@drawable/selector_location_type"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/fab_margin"
android:padding="@dimen/default_widget_padding"
android:layout_margin="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_setting"></ImageView>
android:orientation="vertical">
<ImageView
android:id="@+id/btn_switch"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:background="@drawable/selector_round_bg"
android:text="切换"
android:padding="@dimen/default_widget_padding"
android:src="@drawable/selector_camera_switch"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置"
android:layout_marginTop="@dimen/default_widget_padding"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/btn_switch"
app:layout_constraintRight_toRightOf="parent"></Button>
<ImageView
android:id="@+id/img_location_type"
android:layout_width="@dimen/default_round_widget"
android:layout_height="@dimen/default_round_widget"
android:background="@drawable/selector_round_bg"
android:text="定位方式"
android:src="@drawable/selector_location_type"
android:padding="@dimen/default_widget_padding"
android:layout_marginTop="@dimen/default_widget_padding"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_setting"></ImageView>
</LinearLayout>
<RadioGroup
android:id="@+id/radio_group_picture"

View File

@ -3,6 +3,7 @@
<dimen name="top_pind_sp">20dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="default_widget_padding">6dp</dimen>
<dimen name="default_round_widget">42dp</dimen>
<dimen name="navigation_line_width">10dp</dimen>
<dimen name="navigation_line_margin_left">30dp</dimen>