fix: 修改视频拍摄定位问题-未完成

This commit is contained in:
wangdongsheng
2021-08-25 16:45:50 +08:00
parent 647dd87934
commit 50d6fa5398
13 changed files with 304 additions and 73 deletions

View File

@@ -66,20 +66,19 @@ public class AuthService {
} }
// 定义 BufferedReader输入流来读取URL的响应 // 定义 BufferedReader输入流来读取URL的响应
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = ""; StringBuilder result = new StringBuilder();
String line; String line;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
result += line; result.append(line);
} }
/** /*
* 返回结果示例 * 返回结果示例
*/ */
System.err.println("result:" + result); System.err.println("result:" + result);
JSONObject jsonObject = new JSONObject(result); JSONObject jsonObject = new JSONObject(result.toString());
String access_token = jsonObject.getString("access_token"); return jsonObject.getString("access_token");
return access_token;
} catch (Exception e) { } catch (Exception e) {
System.err.printf("获取token失败"); System.err.print("获取token失败");
e.printStackTrace(System.err); e.printStackTrace(System.err);
} }
return null; return null;

View File

@@ -36,9 +36,7 @@ public class BankCard {
// 注意这里仅为了简化编码每一次请求都去获取access_token线上环境access_token有过期时间 客户端可自行缓存,过期后重新获取。 // 注意这里仅为了简化编码每一次请求都去获取access_token线上环境access_token有过期时间 客户端可自行缓存,过期后重新获取。
String accessToken =AuthService.getAuth("iafhTwf6LnOMoYTiZQDlrKTu","0d3yoIsrsrAspUMoyNkWeeqDTvxvg9QB"); String accessToken =AuthService.getAuth("iafhTwf6LnOMoYTiZQDlrKTu","0d3yoIsrsrAspUMoyNkWeeqDTvxvg9QB");
return HttpUtil.post(url, accessToken, param);
String result = HttpUtil.post(url, accessToken, param);
return result;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -19,7 +19,7 @@ public class IdCard {
* https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3 * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
* 下载 * 下载
*/ */
public static String idcard() { public static String icarus() {
// 请求url // 请求url
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"; String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard";
try { try {
@@ -28,15 +28,10 @@ public class IdCard {
byte[] imgData = FileUtil.readFileByBytes(filePath); byte[] imgData = FileUtil.readFileByBytes(filePath);
String imgStr = Base64Util.encode(imgData); String imgStr = Base64Util.encode(imgData);
String imgParam = URLEncoder.encode(imgStr, "UTF-8"); String imgParam = URLEncoder.encode(imgStr, "UTF-8");
String param = "id_card_side=" + "front" + "&image=" + imgParam; String param = "id_card_side=" + "front" + "&image=" + imgParam;
// 注意这里仅为了简化编码每一次请求都去获取access_token线上环境access_token有过期时间 客户端可自行缓存,过期后重新获取。 // 注意这里仅为了简化编码每一次请求都去获取access_token线上环境access_token有过期时间 客户端可自行缓存,过期后重新获取。
String accessToken = AuthService.getAuth("iafhTwf6LnOMoYTiZQDlrKTu","0d3yoIsrsrAspUMoyNkWeeqDTvxvg9QB"); String accessToken = AuthService.getAuth("iafhTwf6LnOMoYTiZQDlrKTu","0d3yoIsrsrAspUMoyNkWeeqDTvxvg9QB");
return HttpUtil.post(url, accessToken, param);
String result = HttpUtil.post(url, accessToken, param);
System.out.println(result);
return result;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -44,6 +39,6 @@ public class IdCard {
} }
public static void main(String[] args) { public static void main(String[] args) {
IdCard.idcard(); IdCard.icarus();
} }
} }

View File

@@ -234,7 +234,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
} }
navInfoEditor.commit(); navInfoEditor.commit();
} }
Intent intent = new Intent(LoginActivity.this, HomeActivity.class); Intent intent = new Intent(LoginActivity.this, GuidanceActivity.class);
startActivity(intent); startActivity(intent);
finish(); finish();
}else { }else {

View File

@@ -82,6 +82,7 @@ import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE; import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE;
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER;
public class PictureActivity extends BaseActivity implements View.OnClickListener { public class PictureActivity extends BaseActivity implements View.OnClickListener {
@@ -110,6 +111,12 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
private ImageView ivPic; private ImageView ivPic;
private PoiEntity poiEntity; private PoiEntity poiEntity;
private Polyline polyline; private Polyline polyline;
private ImageView ivZoomAdd;
private ImageView ivZoomDel;
private ImageView ivLocation;
private CheckBox cbMapType;
private boolean isMapSlide = false;
private Handler handler=new Handler(new Handler.Callback() { private Handler handler=new Handler(new Handler.Callback() {
@Override @Override
public boolean handleMessage(@NonNull Message msg) { public boolean handleMessage(@NonNull Message msg) {
@@ -141,6 +148,24 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
// if (finalVideoPath == null) { // if (finalVideoPath == null) {
// finalVideoPath = Constant.PICTURE_FOLDER+"/final.mp4"; // finalVideoPath = Constant.PICTURE_FOLDER+"/final.mp4";
// } // }
ivZoomAdd = findViewById(R.id.iv_zoom_add);
ivZoomAdd.setOnClickListener(this);
ivZoomDel = findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
cbMapType = findViewById(R.id.cb_map_type);
cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
} else {
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
}
}
});
ivLocation = findViewById(R.id.iv_location);
ivLocation.setOnClickListener(this);
layerChange = findViewById(R.id.layer_change); layerChange = findViewById(R.id.layer_change);
timer = new Timer(); timer = new Timer();
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
@@ -198,7 +223,7 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
//设置logo的大小 //设置logo的大小
uiSettings.setLogoScale(0.7f); uiSettings.setLogoScale(0.7f);
// uiSettings.setAllGesturesEnabled(false); // uiSettings.setAllGesturesEnabled(false);
setLocMarkerStyle(); // 设置当前位置显示样式 setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);// 设置当前位置显示样式
initLine(); initLine();
// camera.addFrameProcessor(new FrameProcessor() { // camera.addFrameProcessor(new FrameProcessor() {
@@ -442,6 +467,25 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
case R.id.btn_stop_video: case R.id.btn_stop_video:
stopVideoAndFinish(); stopVideoAndFinish();
break; break;
case R.id.iv_zoom_add://放大
CameraUpdate cameraUpdateIn = CameraUpdateFactory.zoomIn();
tencentMap.animateCamera(cameraUpdateIn);
break;
case R.id.iv_zoom_del://缩小
CameraUpdate cameraUpdateOut = CameraUpdateFactory.zoomOut();
tencentMap.animateCamera(cameraUpdateOut);
break;
case R.id.iv_location://定位:
if (Constant.currentLocation != null) {
CameraUpdate cameraSigma =
CameraUpdateFactory.newCameraPosition(new CameraPosition(
new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度
tencentMap.getCameraPosition().zoom, //目标缩放级别
0, //目标倾斜角[0.0 ~ 45.0] (垂直地图时为0)
0)); //目标旋转角 0~360° (正北方为0)
tencentMap.animateCamera(cameraSigma);
}
break;
} }
} }
@@ -519,12 +563,12 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
/** /**
* 设置定位图标样式 * 设置定位图标样式
*/ */
private void setLocMarkerStyle() { private void setLocMarkerStyle(int type) {
tencentMap.setLocationSource(new MyTecentLocationSource(this)); tencentMap.setLocationSource(new MyTecentLocationSource(this));
tencentMap.setMyLocationEnabled(true); tencentMap.setMyLocationEnabled(true);
locationStyle = new MyLocationStyle(); locationStyle = new MyLocationStyle();
locationStyle = locationStyle.myLocationType(LOCATION_TYPE_LOCATION_ROTATE); locationStyle = locationStyle.myLocationType(type);
//创建图标 //创建图标
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap()); BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap());
locationStyle.icon(bitmapDescriptor); locationStyle.icon(bitmapDescriptor);
@@ -557,6 +601,7 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
ivMap.setLayoutParams(layoutParamsMap); ivMap.setLayoutParams(layoutParamsMap);
layerChange.addView(camera); layerChange.addView(camera);
layerChange.addView(ivMap); layerChange.addView(ivMap);
initMapBig();
} else { } else {
ivPic.setVisibility(View.GONE); ivPic.setVisibility(View.GONE);
layoutParamsMap.height = dm.heightPixels; layoutParamsMap.height = dm.heightPixels;
@@ -567,9 +612,29 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
ivMap.setLayoutParams(layoutParamsMap); ivMap.setLayoutParams(layoutParamsMap);
layerChange.addView(ivMap); layerChange.addView(ivMap);
layerChange.addView(camera); layerChange.addView(camera);
initMapShort();
} }
} }
//小图
private void initMapBig() {
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
cbMapType.setVisibility(View.GONE);
ivLocation.setVisibility(View.GONE);
cbMapType.setChecked(false);
}
//大图
private void initMapShort() {
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
cbMapType.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
@@ -613,7 +678,7 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMessageMainThread(Message msg) { public void onEventMessageMainThread(Message msg) {
if (msg.what == Constant.EVENT_WHAT_LOCATION_CHANGE) { // 用户位置更新 if (msg.what == Constant.EVENT_WHAT_LOCATION_CHANGE) { // 用户位置更新
if (tencentMap != null) { if (tencentMap != null&& !isMapSlide) {
CameraUpdate cameraSigma = CameraUpdate cameraSigma =
CameraUpdateFactory.newCameraPosition(new CameraPosition( CameraUpdateFactory.newCameraPosition(new CameraPosition(
new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度 new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度

View File

@@ -18,6 +18,7 @@ import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Toast; import android.widget.Toast;
import com.github.lazylibrary.util.FileUtils; import com.github.lazylibrary.util.FileUtils;
@@ -35,6 +36,7 @@ import com.otaliastudios.cameraview.FileCallback;
import com.otaliastudios.cameraview.PictureResult; import com.otaliastudios.cameraview.PictureResult;
import com.otaliastudios.cameraview.VideoResult; import com.otaliastudios.cameraview.VideoResult;
import com.otaliastudios.cameraview.controls.Mode; import com.otaliastudios.cameraview.controls.Mode;
import com.tencent.map.geolocation.TencentLocation;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdate; import com.tencent.tencentmap.mapsdk.maps.CameraUpdate;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory; import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory;
import com.tencent.tencentmap.mapsdk.maps.TencentMap; import com.tencent.tencentmap.mapsdk.maps.TencentMap;
@@ -65,6 +67,8 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE; import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE;
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER;
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER;
public class PicturesActivity extends BaseActivity implements View.OnClickListener { public class PicturesActivity extends BaseActivity implements View.OnClickListener {
private static final CameraLogger LOG = CameraLogger.create("Picture"); private static final CameraLogger LOG = CameraLogger.create("Picture");
@@ -79,6 +83,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
private String finalVideoPath; // 摄像后最终保存的文件名 private String finalVideoPath; // 摄像后最终保存的文件名
private ViewGroup layerChange; // 切换地图和相机的父控件 private ViewGroup layerChange; // 切换地图和相机的父控件
private CheckBox capturePicture;//拍照 private CheckBox capturePicture;//拍照
private boolean isMapSlide = false;
private Handler handler = new Handler(new Handler.Callback() { private Handler handler = new Handler(new Handler.Callback() {
@Override @Override
public boolean handleMessage(@NonNull Message msg) { public boolean handleMessage(@NonNull Message msg) {
@@ -90,7 +95,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
} }
} else if (msg.what == 0x103) { } else if (msg.what == 0x103) {
listenerPicture = false; listenerPicture = false;
if (type!=3){ if (type != 3) {
capturePicture.setText("开始采集"); capturePicture.setText("开始采集");
} }
capturePicture.setChecked(false); capturePicture.setChecked(false);
@@ -103,6 +108,10 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
private File paperFile; private File paperFile;
private int type; private int type;
private int videoIndex; private int videoIndex;
private ImageView ivZoomAdd;
private ImageView ivZoomDel;
private ImageView ivLocation;
private CheckBox cbMapType;
@Override @Override
@@ -132,26 +141,45 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
btnSwitch.setOnClickListener(this); btnSwitch.setOnClickListener(this);
//相机记录器 //相机记录器
CameraLogger.setLogLevel(CameraLogger.LEVEL_VERBOSE); CameraLogger.setLogLevel(CameraLogger.LEVEL_VERBOSE);
ivZoomAdd = findViewById(R.id.iv_zoom_add);
ivZoomAdd.setOnClickListener(this);
ivZoomDel = findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
cbMapType = findViewById(R.id.cb_map_type);
cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
} else {
setLocMarkerStyle(LOCATION_TYPE_MAP_ROTATE_NO_CENTER);
}
}
});
ivLocation = findViewById(R.id.iv_location);
ivLocation.setOnClickListener(this);
camera = findViewById(R.id.camera); camera = findViewById(R.id.camera);
camera.setOnClickListener(this); camera.setOnClickListener(this);
capturePicture = findViewById(R.id.capture_picture); capturePicture = findViewById(R.id.capture_picture);
if (type==3){ if (type == 3) {
capturePicture.setText("拍摄"); capturePicture.setText("拍摄");
}else { } else {
capturePicture.setText("开始采集"); capturePicture.setText("开始采集");
} }
capturePicture.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { capturePicture.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) { // 开始采集,设置按钮文字内容为“结束采集” if (isChecked) { // 开始采集,设置按钮文字内容为“结束采集”
if (type!=3){ if (type != 3) {
capturePicture.setText("暂停采集"); capturePicture.setText("暂停采集");
} }
listenerPicture = true; listenerPicture = true;
camera.takePicture(); camera.takePicture();
} else { } else {
listenerPicture = false; listenerPicture = false;
if (type!=3){ if (type != 3) {
capturePicture.setText("开始采集"); capturePicture.setText("开始采集");
} }
} }
@@ -162,12 +190,11 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
stopPicture.setOnClickListener(this); stopPicture.setOnClickListener(this);
//获取地图 //获取地图
tencentMap = ivMap.getMap(); tencentMap = ivMap.getMap();
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
//获取地图UI 设置对象 //获取地图UI 设置对象
UiSettings uiSettings = tencentMap.getUiSettings(); UiSettings uiSettings = tencentMap.getUiSettings();
//设置logo的大小 //设置logo的大小
uiSettings.setLogoScale(0.7f); uiSettings.setLogoScale(0.7f);
setLocMarkerStyle(); // 设置当前位置显示样式
initLine(); initLine();
//相机预览监听 //相机预览监听
camera.addCameraListener(new CameraListener() { camera.addCameraListener(new CameraListener() {
@@ -289,9 +316,9 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
case R.id.btn_stop_picture: case R.id.btn_stop_picture:
listenerPicture = false; listenerPicture = false;
Intent intent = new Intent(); Intent intent = new Intent();
finalVideoPath = Objects.requireNonNull(paperFile.getParentFile()).getAbsolutePath() + "/" +videoIndex+ ".jpg"; finalVideoPath = Objects.requireNonNull(paperFile.getParentFile()).getAbsolutePath() + "/" + videoIndex + ".jpg";
intent.putExtra(Constant.INTENT_PICTURES_PATH, finalVideoPath); intent.putExtra(Constant.INTENT_PICTURES_PATH, finalVideoPath);
intent.putExtra("type",type); intent.putExtra("type", type);
setResult(0x102, intent); setResult(0x102, intent);
finish(); finish();
break; break;
@@ -301,6 +328,25 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
handler.sendEmptyMessageDelayed(0x102, 2000); // 利用handler延迟发送更改状态信息 handler.sendEmptyMessageDelayed(0x102, 2000); // 利用handler延迟发送更改状态信息
benSwitch(); benSwitch();
break; break;
case R.id.iv_zoom_add://放大
CameraUpdate cameraUpdateIn = CameraUpdateFactory.zoomIn();
tencentMap.animateCamera(cameraUpdateIn);
break;
case R.id.iv_zoom_del://缩小
CameraUpdate cameraUpdateOut = CameraUpdateFactory.zoomOut();
tencentMap.animateCamera(cameraUpdateOut);
break;
case R.id.iv_location://定位:
if (Constant.currentLocation != null) {
CameraUpdate cameraSigma =
CameraUpdateFactory.newCameraPosition(new CameraPosition(
new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度
tencentMap.getCameraPosition().zoom, //目标缩放级别
0, //目标倾斜角[0.0 ~ 45.0] (垂直地图时为0)
0)); //目标旋转角 0~360° (正北方为0)
tencentMap.animateCamera(cameraSigma);
}
break;
} }
} }
@@ -321,12 +367,13 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
/** /**
* 设置定位图标样式 * 设置定位图标样式
*/ */
private void setLocMarkerStyle() { private void setLocMarkerStyle(int type) {
tencentMap.setLocationSource(new MyTecentLocationSource(this)); tencentMap.setLocationSource(new MyTecentLocationSource(this));
tencentMap.setMyLocationEnabled(true); tencentMap.setMyLocationEnabled(true);
MyLocationStyle locationStyle = new MyLocationStyle(); MyLocationStyle locationStyle = new MyLocationStyle();
locationStyle = locationStyle.myLocationType(LOCATION_TYPE_LOCATION_ROTATE); //LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER
locationStyle = locationStyle.myLocationType(type);
//创建图标 //创建图标
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap()); BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap());
locationStyle.icon(bitmapDescriptor); locationStyle.icon(bitmapDescriptor);
@@ -359,6 +406,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
ivMap.setLayoutParams(layoutParamsMap); ivMap.setLayoutParams(layoutParamsMap);
layerChange.addView(camera); layerChange.addView(camera);
layerChange.addView(ivMap); layerChange.addView(ivMap);
initMapBig();
} else { } else {
layoutParamsMap.height = dm.heightPixels; layoutParamsMap.height = dm.heightPixels;
layoutParamsMap.width = dm.widthPixels; layoutParamsMap.width = dm.widthPixels;
@@ -368,9 +416,32 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
ivMap.setLayoutParams(layoutParamsMap); ivMap.setLayoutParams(layoutParamsMap);
layerChange.addView(ivMap); layerChange.addView(ivMap);
layerChange.addView(camera); layerChange.addView(camera);
initMapShort();
} }
} }
//小图
private void initMapBig() {
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
cbMapType.setVisibility(View.GONE);
ivLocation.setVisibility(View.GONE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
cbMapType.setChecked(false);
}
//大图
private void initMapShort() {
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
cbMapType.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
setLocMarkerStyle(LOCATION_TYPE_MAP_ROTATE_NO_CENTER);
}
@Override @Override
protected void onResume() { protected void onResume() {
@@ -379,11 +450,12 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
} }
@Override @Override
protected void onRestart() { protected void onRestart() {
super.onRestart(); super.onRestart();
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
if (type!=3){ if (type != 3) {
capturePicture.setChecked(false); capturePicture.setChecked(false);
capturePicture.setText("继续采集"); capturePicture.setText("继续采集");
} }
@@ -393,7 +465,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
camera.close(); camera.close();
if (type!=3){ if (type != 3) {
listenerPicture = false; listenerPicture = false;
} }
@@ -422,14 +494,16 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMessageMainThread(Message msg) { public void onEventMessageMainThread(Message msg) {
if (msg.what == Constant.EVENT_WHAT_LOCATION_CHANGE) { // 用户位置更新 if (msg.what == Constant.EVENT_WHAT_LOCATION_CHANGE) { // 用户位置更新
if (tencentMap != null) { if (tencentMap != null && !isMapSlide) {
TencentLocation tencentLocation = (TencentLocation) msg.obj;
CameraUpdate cameraSigma = CameraUpdate cameraSigma =
CameraUpdateFactory.newCameraPosition(new CameraPosition( CameraUpdateFactory.newCameraPosition(new CameraPosition(
new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()), //中心点坐标,地图目标经纬度 new LatLng(tencentLocation.getLatitude(), tencentLocation.getLongitude()), //中心点坐标,地图目标经纬度
16, //目标缩放级别 tencentMap.getCameraPosition().zoom, //目标缩放级别
0, //目标倾斜角 0, //目标倾斜角
0)); //目标旋转角 0~360° (正北方为0) 0)); //目标旋转角 0~360° (正北方为0)
tencentMap.animateCamera(cameraSigma); tencentMap.animateCamera(cameraSigma);
} }
} }
} }

View File

@@ -54,6 +54,7 @@ import org.json.JSONArray;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects;
import static android.app.Activity.RESULT_OK; import static android.app.Activity.RESULT_OK;
@@ -116,13 +117,13 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.iv_gathering: case R.id.iv_gathering:
getActivity().finish(); Objects.requireNonNull(getActivity()).finish();
break; break;
case R.id.et_bank_num: case R.id.et_bank_num:
break; break;
case R.id.iv_bank: case R.id.iv_bank:
String bankJson = new GetJsonDataUtil().getJson(getContext(), "bank.json");//获取assets目录下的json文件数据 String bankJson = new GetJsonDataUtil().getJson(Objects.requireNonNull(getContext()), "bank.json");//获取assets目录下的json文件数据
//用Gabon 转成实体 //用Gabon 转成实体
jsonBean = parseData(bankJson); jsonBean = parseData(bankJson);
Dialog dialog = new Dialog(getContext()); Dialog dialog = new Dialog(getContext());
@@ -146,6 +147,7 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
} }
}); });
Window window = dialog.getWindow(); Window window = dialog.getWindow();
assert window != null;
WindowManager.LayoutParams wlp = window.getAttributes(); WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.BOTTOM; wlp.gravity = Gravity.BOTTOM;
wlp.width = WindowManager.LayoutParams.MATCH_PARENT; wlp.width = WindowManager.LayoutParams.MATCH_PARENT;
@@ -154,7 +156,7 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
dialog.show(); dialog.show();
break; break;
case R.id.btn_bank: case R.id.btn_bank:
if (etBankNum.getText().toString() == null && etBankNum.getText().toString().equals("")) { if (etBankNum.getText().toString().equals("")) {
Toast.makeText(getActivity(), "银行卡号不能为空", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "银行卡号不能为空", Toast.LENGTH_SHORT).show();
return; return;
} }
@@ -202,7 +204,7 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
public void onSuccess(BankPhoneBean response, int id) { public void onSuccess(BankPhoneBean response, int id) {
dismissLoadingDialog(); dismissLoadingDialog();
if (response.getCode() == 200) { if (response.getCode() == 200) {
MessageDialog.show((AppCompatActivity) getActivity(), "提示", "绑定成功", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { MessageDialog.show((AppCompatActivity) Objects.requireNonNull(getActivity()), "提示", "绑定成功", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override @Override
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Constant.BANKACCOUNT=value; Constant.BANKACCOUNT=value;
@@ -212,7 +214,7 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
} }
}); });
} else { } else {
MessageDialog.show((AppCompatActivity) getActivity(), "提示", "绑定失败", "确定","取消").setOkButton(new OnDialogButtonClickListener() { MessageDialog.show((AppCompatActivity) Objects.requireNonNull(getActivity()), "提示", "绑定失败", "确定","取消").setOkButton(new OnDialogButtonClickListener() {
@Override @Override
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Toast.makeText(getActivity(), response.getMessage()+"", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), response.getMessage()+"", Toast.LENGTH_SHORT).show();
@@ -234,7 +236,7 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 131 && resultCode == RESULT_OK) { if (requestCode == 131 && resultCode == RESULT_OK) {
if (file == null && !file.exists()) { if (file == null||!file.exists()) {
Toast.makeText(getActivity(), "请先拍照", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "请先拍照", Toast.LENGTH_SHORT).show();
return; return;
} }
@@ -242,14 +244,20 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
Constant.FILE_PATH = absolutePath; Constant.FILE_PATH = absolutePath;
gatheringCamera.setTag(absolutePath); gatheringCamera.setTag(absolutePath);
//银行卡识别 //银行卡识别
BankCardBean bankCardBean = new Gson().fromJson(BankCard.bankCard(), BankCardBean.class); String bankCard = BankCard.bankCard();
if (bankCardBean==null){ if (bankCard!=null&&!bankCard.equals("")){
Toast.makeText(getContext(), "请手动添加银行卡号", Toast.LENGTH_SHORT).show(); BankCardBean bankCardBean = new Gson().fromJson(bankCard, BankCardBean.class);
if (bankCardBean==null){
Toast.makeText(getContext(), "请手动添加银行卡号", Toast.LENGTH_SHORT).show();
}else {
String bank_card_number = bankCardBean.getResult().getBank_card_number();
etBankNum.setText(bank_card_number);
}
}else { }else {
String bank_card_number = bankCardBean.getResult().getBank_card_number(); Toast.makeText(getContext(), "请手动添加银行卡号", Toast.LENGTH_SHORT).show();
etBankNum.setText(bank_card_number);
} }
} }
} }

View File

@@ -104,7 +104,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private MyLocationStyle locationStyle; private MyLocationStyle locationStyle;
private ImageView ivLocation; private ImageView ivLocation;
private ImageView ivSubmit; private ImageView ivSubmit;
private ImageView ivRefish; private ImageView ivRaffish;
private SlidingUpPanelLayout sliding_layout; private SlidingUpPanelLayout sliding_layout;
// private FragmentTransaction fragmentTransaction; // private FragmentTransaction fragmentTransaction;
private Marker markerPoi; private Marker markerPoi;
@@ -113,10 +113,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private Point screenPosition; //marker的屏幕坐标 private Point screenPosition; //marker的屏幕坐标
private FrameLayout frameLayout; private FrameLayout frameLayout;
private GatherGetFragment gatherGetFragment; private GatherGetFragment gatherGetFragment;
private LinearLayout dragView;
public ImageView ivMessage; public ImageView ivMessage;
private PoiDao poiDao; private PoiDao poiDao;
private String userEncode;
private String centerEncode; private String centerEncode;
private List<Removable> removables; private List<Removable> removables;
private List<Removable> removableScreenMarker; private List<Removable> removableScreenMarker;
@@ -182,10 +180,10 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
PoiDatabase poiDatabase = PoiDatabase.getInstance(getContext()); PoiDatabase poiDatabase = PoiDatabase.getInstance(getContext());
poiDao = poiDatabase.getPoiDao(); poiDao = poiDatabase.getPoiDao();
sliding_layout = findViewById(R.id.sliding_layout); sliding_layout = findViewById(R.id.sliding_layout);
dragView = findViewById(R.id.dragView); LinearLayout dragView = findViewById(R.id.dragView);
frameLayout = findViewById(R.id.frame_layout); frameLayout = findViewById(R.id.frame_layout);
ivRefish = findViewById(R.id.iv_refrish); ivRaffish = findViewById(R.id.iv_refrish);
ivRefish.setOnClickListener(this); ivRaffish.setOnClickListener(this);
ivFilter = findViewById(R.id.iv_filter); ivFilter = findViewById(R.id.iv_filter);
ivFilter.setOnClickListener(this); ivFilter.setOnClickListener(this);
ivSubmit = findViewById(R.id.iv_submit); ivSubmit = findViewById(R.id.iv_submit);
@@ -388,7 +386,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
if (mapCenterPoint != null) { if (mapCenterPoint != null) {
centerEncode = Geohash.getInstance().encode(mapCenterPoint.latitude, mapCenterPoint.longitude); centerEncode = Geohash.getInstance().encode(mapCenterPoint.latitude, mapCenterPoint.longitude);
} }
userEncode = Geohash.getInstance().encode(tencentLocation.getLatitude(), tencentLocation.getLongitude()); String userEncode = Geohash.getInstance().encode(tencentLocation.getLatitude(), tencentLocation.getLongitude());
OkGo.getInstance().cancelTag(this); OkGo.getInstance().cancelTag(this);
showLoadingDialog(); showLoadingDialog();
// 请求方式和请求url // 请求方式和请求url
@@ -1225,7 +1223,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
ivZoomAdd.setVisibility(visitable); ivZoomAdd.setVisibility(visitable);
ivZoomDel.setVisibility(visitable); ivZoomDel.setVisibility(visitable);
ivLocation.setVisibility(visitable); ivLocation.setVisibility(visitable);
ivRefish.setVisibility(visitable); ivRaffish.setVisibility(visitable);
cbMapType.setVisibility(visitable); cbMapType.setVisibility(visitable);
ivSubmit.setVisibility(visitable); ivSubmit.setVisibility(visitable);
ivFilter.setVisibility(visitable); ivFilter.setVisibility(visitable);
@@ -1276,7 +1274,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
locationStyle = new MyLocationStyle(); locationStyle = new MyLocationStyle();
locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER); locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
//创建图标 //创建图标
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap(R.drawable.location)); BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(getBitMap());
locationStyle.icon(bitmapDescriptor); locationStyle.icon(bitmapDescriptor);
//设置定位圆形区域的边框宽度; //设置定位圆形区域的边框宽度;
locationStyle.strokeWidth(1); locationStyle.strokeWidth(1);
@@ -1301,8 +1299,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
tencentMap.setMyLocationStyle(locationStyle); tencentMap.setMyLocationStyle(locationStyle);
} }
private Bitmap getBitMap(int resourceId) { private Bitmap getBitMap() {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.location);
int width = bitmap.getWidth(); int width = bitmap.getWidth();
int height = bitmap.getHeight(); int height = bitmap.getHeight();
int newWidth = 55; int newWidth = 55;

View File

@@ -342,7 +342,7 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
tvCard3.setVisibility(View.GONE); tvCard3.setVisibility(View.GONE);
}else if (requestCode == 124 && resultCode == RESULT_OK){ }else if (requestCode == 124 && resultCode == RESULT_OK){
if (file == null && !file.exists()) { if (file == null || !file.exists()) {
Toast.makeText(getActivity(), "请先拍照", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "请先拍照", Toast.LENGTH_SHORT).show();
return; return;
} }
@@ -350,13 +350,20 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
Constant.FILE_PATH = absolutePath; Constant.FILE_PATH = absolutePath;
useCamera.setTag(absolutePath); useCamera.setTag(absolutePath);
//身份证识别 //身份证识别
IdCardNumberBean idCardNumberBean = new Gson().fromJson(IdCard.idcard(), IdCardNumberBean.class); String icarus = IdCard.icarus();
if (idCardNumberBean ==null){ if (icarus!=null&&!icarus.equals("")){
Toast.makeText(getActivity(), "请手动添加身份证号", Toast.LENGTH_SHORT).show(); IdCardNumberBean idCardNumberBean = new Gson().fromJson(icarus, IdCardNumberBean.class);
if (idCardNumberBean ==null){
Toast.makeText(getActivity(), "请手动添加身份证号", Toast.LENGTH_SHORT).show();
}else {
String words = idCardNumberBean.getWords_result().get公民身份号码().getWords();
etNamePhone.setText(words);
}
}else { }else {
String words = idCardNumberBean.getWords_result().get公民身份号码().getWords(); Toast.makeText(getActivity(), "请手动添加身份证号", Toast.LENGTH_SHORT).show();
etNamePhone.setText(words);
} }
} }
} }
} }

View File

@@ -65,13 +65,13 @@ public class HttpUtil {
BufferedReader in = null; BufferedReader in = null;
in = new BufferedReader( in = new BufferedReader(
new InputStreamReader(connection.getInputStream(), encoding)); new InputStreamReader(connection.getInputStream(), encoding));
String result = ""; StringBuilder result = new StringBuilder();
String getLine; String getLine;
while ((getLine = in.readLine()) != null) { while ((getLine = in.readLine()) != null) {
result += getLine; result.append(getLine);
} }
in.close(); in.close();
System.err.println("result:" + result); System.err.println("result:" + result);
return result; return result.toString();
} }
} }

View File

@@ -31,7 +31,49 @@
app:layout_constraintWidth_percent="0.4" /> app:layout_constraintWidth_percent="0.4" />
</FrameLayout> </FrameLayout>
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:src="@mipmap/zoom_add"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
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" />
<CheckBox
android:id="@+id/cb_map_type"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:background="@drawable/atlas_selector"
android:button="@null"
android:checked="false"
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="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:src="@mipmap/mine_location"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/cb_map_type"
app:layout_constraintTop_toBottomOf="@id/cb_map_type" />
<Button <Button
android:id="@+id/btn_switch" android:id="@+id/btn_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -6,10 +6,12 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#FF444444" android:background="#FF444444"
tools:context=".activity.PicturesActivity"> tools:context=".activity.PicturesActivity">
<FrameLayout <FrameLayout
android:id="@+id/layer_change" android:id="@+id/layer_change"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.otaliastudios.cameraview.CameraView <com.otaliastudios.cameraview.CameraView
android:id="@+id/camera" android:id="@+id/camera"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -30,6 +32,50 @@
app:layout_constraintWidth_percent="0.4" /> app:layout_constraintWidth_percent="0.4" />
</FrameLayout> </FrameLayout>
<ImageView
android:id="@+id/iv_zoom_add"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:src="@mipmap/zoom_add"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
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" />
<CheckBox
android:id="@+id/cb_map_type"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:background="@drawable/atlas_selector"
android:button="@null"
android:checked="false"
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="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp"
android:src="@mipmap/mine_location"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="@id/cb_map_type"
app:layout_constraintTop_toBottomOf="@id/cb_map_type" />
<Button <Button
android:id="@+id/btn_switch" android:id="@+id/btn_switch"
@@ -42,7 +88,6 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<CheckBox <CheckBox
android:id="@+id/capture_picture" android:id="@+id/capture_picture"
style="@style/user_data_style" style="@style/user_data_style"

View File

@@ -57,11 +57,11 @@
android:id="@+id/cb_map_type" android:id="@+id/cb_map_type"
android:layout_width="50dp" android:layout_width="50dp"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_marginRight="15dp" android:layout_marginEnd="15dp"
android:background="@drawable/atlas_selector" android:background="@drawable/atlas_selector"
android:button="@null" android:button="@null"
android:checked="false" android:checked="false"
app:layout_constraintBottom_toTopOf="@+id/iv_submit" app:layout_constraintBottom_toTopOf="@+id/iv_submit"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/iv_zoom_add" app:layout_constraintTop_toTopOf="@+id/iv_zoom_add"
/> />