From ec501bc6d2f4b802691b5ac28ca373da1382ac68 Mon Sep 17 00:00:00 2001 From: wds Date: Fri, 6 Aug 2021 22:00:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 10 ++++ .../outdoor/activity/PictureActivity.java | 6 +- .../navinfo/outdoor/api/UserApplication.java | 5 ++ .../fragment/ChargingStationFragment.java | 8 +-- .../navinfo/outdoor/fragment/PoiFragment.java | 50 ++++++++++------ .../outdoor/fragment/TreasureFragment.java | 2 + .../navinfo/outdoor/util/PhotoPathUtil.java | 2 +- .../com/navinfo/outdoor/util/PhotoUtils.java | 58 +++++++++++++++++++ app/src/main/res/drawable/ic_baseline.xml | 5 ++ app/src/main/res/layout/poi_fragment.xml | 5 ++ 11 files changed, 125 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/com/navinfo/outdoor/util/PhotoUtils.java create mode 100644 app/src/main/res/drawable/ic_baseline.xml diff --git a/app/build.gradle b/app/build.gradle index 43917f5..a78f9ee 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion '29.0.2' - ndkVersion '23.0.7123448' + // ndkVersion '23.0.7123448' defaultConfig { applicationId "com.navinfo.outdoor" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2322cb3..ddd9136 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,16 @@ android:screenOrientation="portrait"/> + + + + \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java index 6097433..837b30a 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java @@ -237,7 +237,8 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene for (int i = 0; i < lineStringByVideoFileList.size(); i++) { LatLng latLng = lineStringByVideoFileList.get(i); if (latLng!=null){ - Marker marker = tencentMap.addMarker(new MarkerOptions(latLng).alpha(0.9f) + BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(ic_baseline); + Marker marker = tencentMap.addMarker(new MarkerOptions(latLng).icon(pileDescriptor).alpha(0.9f) .flat(true) .clockwise(false)); removables.add(marker); @@ -628,7 +629,8 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene } sb.append("\r\n"); LatLng latLng = new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()); - Marker marker = tencentMap.addMarker(new MarkerOptions(latLng).alpha(0.9f) + BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(ic_baseline); + Marker marker = tencentMap.addMarker(new MarkerOptions(latLng).icon(pileDescriptor).alpha(0.9f) .flat(true) .clockwise(false)); removables.add(marker); diff --git a/app/src/main/java/com/navinfo/outdoor/api/UserApplication.java b/app/src/main/java/com/navinfo/outdoor/api/UserApplication.java index 25855c4..e4e9937 100644 --- a/app/src/main/java/com/navinfo/outdoor/api/UserApplication.java +++ b/app/src/main/java/com/navinfo/outdoor/api/UserApplication.java @@ -1,6 +1,7 @@ package com.navinfo.outdoor.api; import android.app.Application; +import android.os.StrictMode; import com.lzy.okgo.OkGo; import com.lzy.okgo.cache.CacheEntity; @@ -95,6 +96,10 @@ public class UserApplication extends Application { //全局统一超时重连次数,默认为三次,那么最差的情况会请求4次(一次原始请求,三次重连请求),不需要可以设置为0; .setRetryCount(0); + StrictMode.VmPolicy.Builder picBuilder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(picBuilder.build()); + picBuilder.detectFileUriExposure(); + } } diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java index 57958ba..143255e 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingStationFragment.java @@ -91,11 +91,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private RelativeLayout rlPanorama, rlName, rlInternalPhotos, rlElse, rlScutcheon, rlNull; private ImageView ivPanorama, ivName, ivInternal, ivElse, ivScutcheon; private TextView tvExamine; - private TextView tvPanorama; - private TextView tvName; - private TextView tvInternal; - private TextView tvElse; - private TextView tvScutcheon; + private TextView tvPanorama, tvName, tvInternal, tvElse, tvScutcheon; private EditText editNameContent, editSiteContent; private ArrayList poiBeans; private Button btnSaveLocal; @@ -745,7 +741,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } else { chargingStationList.add(new File(tagInternal)); } - String tagElse = (String) ivElse.getTag(); + String tagElse = (String) tvElse.getTag(); if (tagElse == null) { Toast.makeText(getContext(), "请拍照", Toast.LENGTH_SHORT).show(); return; 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 172c39a..6a84c65 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java @@ -4,8 +4,10 @@ import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.Color; +import android.net.Uri; import android.os.Bundle; import android.os.Message; +import android.provider.MediaStore; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -83,6 +85,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe private EditText editDescribe; private RelativeLayout rlPanorama, rlName, rlInternalPhotos, rlCard, rlElse; private ImageView ivPanorama, ivName, ivInternal, ivCard, ivElse; + private TextView tvPanorama, tvName, tvInternal, tvCard, tvElse; public TextView tvExamine; private EditText editNameContent, editSiteContent; private ArrayList poiBeans; @@ -200,11 +203,18 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe tvExamine.setOnClickListener(this::onClick); editDescribe = findViewById(R.id.edit_describe); ivPanorama = findViewById(R.id.iv_panorama); + tvPanorama = findViewById(R.id.tv_panorama); ivName = findViewById(R.id.iv_name); + tvName = findViewById(R.id.tv_name); ivInternal = findViewById(R.id.iv_internal); - linearContact = findViewById(R.id.linear_contact); + tvInternal = findViewById(R.id.tv_internal); + ivCard = findViewById(R.id.iv_card); + tvCard = findViewById(R.id.tv_card); + ivElse = findViewById(R.id.iv_else); + tvElse = findViewById(R.id.tv_else); + linearContact = findViewById(R.id.linear_contact); rlPanorama = findViewById(R.id.rl_panorama); rlPanorama.setOnClickListener(this::onClick); rlName = findViewById(R.id.rl_name); @@ -518,7 +528,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe break; case R.id.btn_uploading: poiPicList = new ArrayList<>(); - String tagPanorama = (String) ivPanorama.getTag(); + String name = editNameContent.getText().toString().trim();//名称 if (name == null || name.equals("")) { Toast.makeText(getActivity(), "请输入poi 名称", Toast.LENGTH_SHORT).show(); @@ -528,13 +538,14 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Toast.makeText(getActivity(), "请确定点位", Toast.LENGTH_SHORT).show(); return; } + String tagPanorama = (String) tvPanorama.getTag(); if (tagPanorama == null) { Toast.makeText(getActivity(), "请拍照", Toast.LENGTH_SHORT).show(); return; } else { poiPicList.add(new File(tagPanorama)); } - String tagName = (String) ivName.getTag(); + String tagName = (String)tvName.getTag(); if (tagName == null) { Toast.makeText(getActivity(), "请拍照", Toast.LENGTH_SHORT).show(); return; @@ -542,15 +553,15 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe poiPicList.add(new File(tagName)); } - String tagInternal = (String) ivInternal.getTag(); + String tagInternal = (String) tvInternal.getTag(); if (tagInternal != null) { poiPicList.add(new File(tagInternal)); } - String tagElse = (String) ivElse.getTag(); + String tagElse = (String) tvElse.getTag(); if (tagElse != null) { poiPicList.add(new File(tagElse)); } - String tagCard = (String) ivCard.getTag(); + String tagCard = (String) tvCard.getTag(); if (tagCard != null) { poiPicList.add(new File(tagCard)); } @@ -577,6 +588,8 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe break; case R.id.rl_panorama: Intent intentPanorama = new Intent("android.media.action.IMAGE_CAPTURE"); + File file = new File(Constant.PICTURE_FOLDER+"/aaaaaa.jpg"); + intentPanorama.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(intentPanorama, 101); break; case R.id.rl_name: @@ -809,7 +822,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Bundle extras = data.getExtras();//从Intent中获取附加值 Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 String takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data, "a", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); - ivPanorama.setTag(takePhotoPath1); + tvPanorama.setTag(takePhotoPath1); ivPanorama.setImageBitmap(bitmap);//显示图像 /* int height = bitmap.getHeight(); int width = bitmap.getWidth(); @@ -830,7 +843,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Bundle extras = data.getExtras();//从Intent中获取附加值 Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 String takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data, "b", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); - ivName.setTag(takePhotoPath2); + tvName.setTag(takePhotoPath2); ivName.setImageBitmap(bitmap);//显示图像 /* int height = bitmap.getHeight(); int width = bitmap.getWidth(); @@ -851,7 +864,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Bundle extras = data.getExtras();//从Intent中获取附加值 Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 String takePhotoPath3 = PhotoPathUtil.getTakePhotoPath(data, "c", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); - ivInternal.setTag(takePhotoPath3); + tvInternal.setTag(takePhotoPath3); ivInternal.setImageBitmap(bitmap);//显示图像 /*int height = bitmap.getHeight(); int width = bitmap.getWidth(); @@ -872,7 +885,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Bundle extras = data.getExtras();//从Intent中获取附加值 Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 String takePhotoPath4 = PhotoPathUtil.getTakePhotoPath(data, "d", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); - ivCard.setTag(takePhotoPath4); + tvCard.setTag(takePhotoPath4); ivCard.setImageBitmap(bitmap);//显示图像 /* int height = bitmap.getHeight(); int width = bitmap.getWidth(); @@ -893,7 +906,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe Bundle extras = data.getExtras();//从Intent中获取附加值 Bitmap bitmap = (Bitmap) extras.get("data");//从附加值中获取返回的图像 String takePhotoPath5 = PhotoPathUtil.getTakePhotoPath(data, "e", Geohash.getInstance().encode(latLng.latitude, latLng.longitude)); - ivElse.setTag(takePhotoPath5); + tvElse.setTag(takePhotoPath5); ivElse.setImageBitmap(bitmap);//显示图像 /* int height = bitmap.getHeight(); int width = bitmap.getWidth(); @@ -963,24 +976,25 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (phoneBean) { String list = contactView.getList(); poiEntity.setTelPhone(list); + } - String tagPanorama = (String) ivPanorama.getTag(); + String tagPanorama = (String) tvPanorama.getTag(); if (tagPanorama != null && !tagPanorama.equals("")) { infoPhoto.add(new Info(tagPanorama)); } - String tagName = (String) ivName.getTag(); + String tagName = (String) tvName.getTag(); if (tagName != null && !tagName.equals("")) { infoPhoto.add(new Info(tagName)); } - String tagInternal = (String) ivInternal.getTag(); + String tagInternal = (String) tvInternal.getTag(); if (tagInternal != null && !tagInternal.equals("")) { infoPhoto.add(new Info(tagInternal)); } - String tagElse = (String) ivElse.getTag(); + String tagElse = (String) tvElse.getTag(); if (tagElse != null && !tagElse.equals("")) { infoPhoto.add(new Info(tagElse)); } - String tagCard = (String) ivCard.getTag(); + String tagCard = (String) tvCard.getTag(); if (tagCard != null && !tagCard.equals("")) { infoPhoto.add(new Info(tagCard)); } @@ -1005,12 +1019,12 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe poiCheckResult.setMsg("请输入 名称"); return poiCheckResult; } - if (ivPanorama.getTag()==null){ + if (tvPanorama.getTag()==null){ poiCheckResult.setCode(1); poiCheckResult.setMsg("请 拍照"); return poiCheckResult; } - if (ivName.getTag()==null){ + if (tvName.getTag()==null){ poiCheckResult.setCode(1); poiCheckResult.setMsg("请 拍照"); return poiCheckResult; 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 1df630a..a319386 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -987,6 +987,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen break; } frameLayout.setVisibility(View.GONE); + initThread(); + initList(Constant.currentLocation); if (gatherGetFragment != null) { fragmentTransaction.remove(gatherGetFragment); } diff --git a/app/src/main/java/com/navinfo/outdoor/util/PhotoPathUtil.java b/app/src/main/java/com/navinfo/outdoor/util/PhotoPathUtil.java index ffa76c5..ac29674 100644 --- a/app/src/main/java/com/navinfo/outdoor/util/PhotoPathUtil.java +++ b/app/src/main/java/com/navinfo/outdoor/util/PhotoPathUtil.java @@ -54,7 +54,7 @@ public class PhotoPathUtil { if (angle==0){ angle=90; } - File file = new File(Constant.PICTURE_FOLDER, d+time+"_p"+coord+"_a"+angle+".jpg"); + File file = new File(Constant.PICTURE_FOLDER+d+time+"_p"+coord+"_a"+angle+".jpg"); /***打开文件输出流*/ fileOutputStream = new FileOutputStream(file); // 生成图片文件 diff --git a/app/src/main/java/com/navinfo/outdoor/util/PhotoUtils.java b/app/src/main/java/com/navinfo/outdoor/util/PhotoUtils.java new file mode 100644 index 0000000..ed7ae9b --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/util/PhotoUtils.java @@ -0,0 +1,58 @@ +package com.navinfo.outdoor.util; + +import android.content.Intent; +import android.util.Log; +import android.widget.ImageView; + +import androidx.exifinterface.media.ExifInterface; + +import com.navinfo.outdoor.api.Constant; + +import java.io.File; +import java.io.IOException; + +import static org.greenrobot.eventbus.EventBus.TAG; + +public class PhotoUtils { + public static String showPhotoAndGetPath(File file, ImageView imageView) { + return null; + } + public static File showPhotoFile(String d,String lat) { + long time=System.currentTimeMillis(); + File file = new File(Constant.PICTURE_FOLDER, d+time+"_p"+lat+"_a"+0+".jpg"); + return file; + } + + /** + * 获取图片旋转角度 + * @param filepath + * @return + */ + public static int getExifOrientation(String filepath) { + int degree = 0; + ExifInterface exif = null; + try { + exif = new ExifInterface(filepath); + } catch (IOException ex) { + Log.d(TAG, "cannot read exif" + ex); + } + if (exif != null) { + int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1); + if (orientation != -1) { + switch(orientation) { + case ExifInterface.ORIENTATION_ROTATE_90: + degree = 90; + break; + case ExifInterface.ORIENTATION_ROTATE_180: + degree = 180; + break; + case ExifInterface.ORIENTATION_ROTATE_270: + degree = 270; + break; + } + } + } + return degree; + } + +} diff --git a/app/src/main/res/drawable/ic_baseline.xml b/app/src/main/res/drawable/ic_baseline.xml new file mode 100644 index 0000000..b7d587c --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/poi_fragment.xml b/app/src/main/res/layout/poi_fragment.xml index 7bdbfaf..ab65c36 100644 --- a/app/src/main/res/layout/poi_fragment.xml +++ b/app/src/main/res/layout/poi_fragment.xml @@ -277,6 +277,7 @@ android:layout_height="20dp" />