提交 2893e7d8 authored 作者: flexiblexd@163.com's avatar flexiblexd@163.com

1.mes

上级 e63d2f41
...@@ -6,8 +6,8 @@ android { ...@@ -6,8 +6,8 @@ android {
applicationId "com.wd.workoffice" applicationId "com.wd.workoffice"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 28
versionCode 8 versionCode 10
versionName "1.0.8" versionName "1.0.10"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [ manifestPlaceholders = [
JPUSH_PKGNAME: applicationId, JPUSH_PKGNAME: applicationId,
...@@ -109,4 +109,6 @@ dependencies { ...@@ -109,4 +109,6 @@ dependencies {
implementation 'com.huawei.storage:esdk-obs-android:3.1.3' implementation 'com.huawei.storage:esdk-obs-android:3.1.3'
implementation 'com.blankj:utilcodex:1.29.0' implementation 'com.blankj:utilcodex:1.29.0'
// implementation 'com.github.Shouheng88:compressor:latest-version'
implementation 'id.zelory:compressor:2.1.1'
} }
...@@ -3,8 +3,10 @@ package com.wd.workoffice.ui.activity.mes.quality; ...@@ -3,8 +3,10 @@ package com.wd.workoffice.ui.activity.mes.quality;
import android.Manifest; import android.Manifest;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
...@@ -18,6 +20,7 @@ import android.widget.TextView; ...@@ -18,6 +20,7 @@ import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.UriUtils;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
...@@ -46,6 +49,7 @@ import com.zhihu.matisse.internal.entity.CaptureStrategy; ...@@ -46,6 +49,7 @@ import com.zhihu.matisse.internal.entity.CaptureStrategy;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -58,6 +62,7 @@ import butterknife.ButterKnife; ...@@ -58,6 +62,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.FileUtils; import flexible.xd.android_base.utils.FileUtils;
import id.zelory.compressor.Compressor;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import okhttp3.MediaType; import okhttp3.MediaType;
...@@ -257,6 +262,10 @@ public class MesQualityAddActivity extends WorkToolBarActivity { ...@@ -257,6 +262,10 @@ public class MesQualityAddActivity extends WorkToolBarActivity {
imgAddAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { imgAddAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (imgList.size() > 9) {
toast("最大上传9张");
return;
}
if (position == imgList.size() - 1) { if (position == imgList.size() - 1) {
addImg(); addImg();
} }
...@@ -546,7 +555,7 @@ public class MesQualityAddActivity extends WorkToolBarActivity { ...@@ -546,7 +555,7 @@ public class MesQualityAddActivity extends WorkToolBarActivity {
Matisse.from(MesQualityAddActivity.this) Matisse.from(MesQualityAddActivity.this)
.choose(MimeType.ofImage()) .choose(MimeType.ofImage())
.countable(true) .countable(true)
.maxSelectable(3).capture(true). .maxSelectable(9).capture(true).
captureStrategy(new CaptureStrategy(true, "com.wd.workoffice.fileprovider")) captureStrategy(new CaptureStrategy(true, "com.wd.workoffice.fileprovider"))
// .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) // .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
// .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) // .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
...@@ -568,11 +577,13 @@ public class MesQualityAddActivity extends WorkToolBarActivity { ...@@ -568,11 +577,13 @@ public class MesQualityAddActivity extends WorkToolBarActivity {
showLoading(); showLoading();
File file; File file;
if (uri instanceof Uri) { if (uri instanceof Uri) {
file = WorkUtils.uriToFile((Uri) uri, this); // file = WorkUtils.uriToFile((Uri) uri, this);
file = UriUtils.uri2File((Uri) uri);
} else { } else {
file = new File(uri.toString()); file = new File(uri.toString());
} }
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),smallImg );
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -594,17 +605,20 @@ public class MesQualityAddActivity extends WorkToolBarActivity { ...@@ -594,17 +605,20 @@ public class MesQualityAddActivity extends WorkToolBarActivity {
toast(data.getMessage()); toast(data.getMessage());
return; return;
} }
if (imgList.size() < 10) {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
imgList.add(imgList.size() - 1, imageBean); imgList.add(imgList.size() - 1, imageBean);
imgAddAdapter.notifyDataSetChanged(); imgAddAdapter.notifyDataSetChanged();
imageBean.setUri((Uri) uri); imageBean.setUri((Uri) uri);
} }
}
}); });
} }
......
...@@ -4,6 +4,7 @@ import android.Manifest; ...@@ -4,6 +4,7 @@ import android.Manifest;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
...@@ -12,15 +13,19 @@ import android.widget.ImageView; ...@@ -12,15 +13,19 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
import com.wd.workoffice.app.WorkToolBarActivity; import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.event.AddLogEvent; import com.wd.workoffice.bean.event.AddLogEvent;
import com.wd.workoffice.bean.mesBean.ImageBean; import com.wd.workoffice.bean.mesBean.ImageBean;
import com.wd.workoffice.bean.mesBean.MesProBean;
import com.wd.workoffice.bean.mesBean.TicketBean; import com.wd.workoffice.bean.mesBean.TicketBean;
import com.wd.workoffice.retrofit.RtfUtils; import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver; import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.ImgAddAdapter;
import com.wd.workoffice.util.Glide4Engine; import com.wd.workoffice.util.Glide4Engine;
import com.wd.workoffice.util.GlideUtils; import com.wd.workoffice.util.GlideUtils;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
...@@ -37,6 +42,8 @@ import java.util.List; ...@@ -37,6 +42,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -72,9 +79,13 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -72,9 +79,13 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
ImageView ivImg2; ImageView ivImg2;
@BindView(R.id.iv_img3) @BindView(R.id.iv_img3)
ImageView ivImg3; ImageView ivImg3;
@BindView(R.id.rv_img)
RecyclerView rvImg;
private Map<String, Object> param; private Map<String, Object> param;
private TicketBean.ListBean data; private TicketBean.ListBean data;
private Map<Integer, Object> annexMap = new HashMap<>(); private Map<Integer, Object> annexMap = new HashMap<>();
private List<ImageBean> imgList;
private ImgAddAdapter imgAddAdapter;
@Override @Override
protected void initView() { protected void initView() {
...@@ -83,6 +94,7 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -83,6 +94,7 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
tvCode.setText(data.getJobNo()); tvCode.setText(data.getJobNo());
tvTime.setText(data.getCreateDateTime()); tvTime.setText(data.getCreateDateTime());
tvCreatePerson.setText(data.getCreateUserName()); tvCreatePerson.setText(data.getCreateUserName());
rvImg.setLayoutManager(new GridLayoutManager(this, 3, RecyclerView.VERTICAL, false));
// ivImg1.setImageResource(R.mipmap.ic_launcher); // ivImg1.setImageResource(R.mipmap.ic_launcher);
// GlideUtils.getRequest().load(R.mipmap.ic_launcher).into(ivImg1); // GlideUtils.getRequest().load(R.mipmap.ic_launcher).into(ivImg1);
} }
...@@ -91,6 +103,12 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -91,6 +103,12 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
protected void initData() { protected void initData() {
param = WorkUtils.simpleParam(); param = WorkUtils.simpleParam();
param.put("jobNo", data.getJobNo()); param.put("jobNo", data.getJobNo());
imgList = new ArrayList<>();
ImageBean imageBean = new ImageBean();
imageBean.setUri(null);
imgList.add(imageBean);
imgAddAdapter = new ImgAddAdapter(R.layout.item_mes_ticket_img, imgList);
imgAddAdapter.bindToRecyclerView(rvImg);
} }
private void submit() { private void submit() {
...@@ -123,6 +141,25 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -123,6 +141,25 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
@Override @Override
protected void initEvent() { protected void initEvent() {
imgAddAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
imgList.remove(position);
imgAddAdapter.notifyDataSetChanged();
}
});
imgAddAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (imgList.size() > 3) {
toast("最大上传3张");
return;
}
if (position == imgList.size() - 1) {
addImg();
}
}
});
} }
@Override @Override
...@@ -146,7 +183,11 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -146,7 +183,11 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
param.put("customerDemand", client); param.put("customerDemand", client);
param.put("jobContent", content); param.put("jobContent", content);
param.put("problemDescription", desc); param.put("problemDescription", desc);
param.put("attachments", getUploadImg()); List<ImageBean> uploadImg = new ArrayList<>();
for (int i = 0; i < imgList.size() - 1; i++) {
uploadImg.add(imgList.get(i));
}
param.put("attachments", uploadImg);
submit(); submit();
break; break;
} }
...@@ -166,18 +207,18 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -166,18 +207,18 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
public void onViewClicked(View view) { public void onViewClicked(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.iv_img1: case R.id.iv_img1:
addImg(1); // addImg(1);
break; break;
case R.id.iv_img2: case R.id.iv_img2:
addImg(2); // addImg(2);
break; break;
case R.id.iv_img3: case R.id.iv_img3:
addImg(3); // addImg(3);
break; break;
} }
} }
private void addImg(int position) { private void addImg() {
RxPermissions rxPermissions = new RxPermissions(this); RxPermissions rxPermissions = new RxPermissions(this);
rxPermissions rxPermissions
.request(Manifest.permission.CAMERA, .request(Manifest.permission.CAMERA,
...@@ -189,14 +230,14 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -189,14 +230,14 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
Matisse.from(MesTicketAddLogActivity.this) Matisse.from(MesTicketAddLogActivity.this)
.choose(MimeType.ofAll()) .choose(MimeType.ofAll())
.countable(true) .countable(true)
.maxSelectable(1).capture(true). .maxSelectable(3).capture(true).
captureStrategy(new CaptureStrategy(true, "com.wd.workoffice.fileprovider")) captureStrategy(new CaptureStrategy(true, "com.wd.workoffice.fileprovider"))
// .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) // .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
// .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) // .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.thumbnailScale(0.85f) .thumbnailScale(0.85f)
.imageEngine(new Glide4Engine()) .imageEngine(new Glide4Engine())
.forResult(10000 + position); .forResult(10001);
} else { } else {
// At least one permission is denied // At least one permission is denied
toast("您需要开启拍照、存储权限!"); toast("您需要开启拍照、存储权限!");
...@@ -210,31 +251,43 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -210,31 +251,43 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
switch (requestCode) { switch (requestCode) {
case 10001: case 10001:
if (Matisse.obtainResult(data).size() != 0) { // if (Matisse.obtainResult(data).size() != 0) {
Uri uri = Matisse.obtainResult(data).get(0); // Uri uri = Matisse.obtainResult(data).get(0);
upload(1, uri); // upload(1, uri);
// }
List<Uri> dataUri = Matisse.obtainResult(data);
for (Uri uri : dataUri) {
upload(uri);
} }
break; break;
case 10002: case 10002:
if (Matisse.obtainResult(data).size() != 0) { // if (Matisse.obtainResult(data).size() != 0) {
Uri uri = Matisse.obtainResult(data).get(0); // Uri uri = Matisse.obtainResult(data).get(0);
upload(2, uri); // upload(2, uri);
} // }
break; break;
case 10003: case 10003:
if (Matisse.obtainResult(data).size() != 0) { // if (Matisse.obtainResult(data).size() != 0) {
Uri uri = Matisse.obtainResult(data).get(0); // Uri uri = Matisse.obtainResult(data).get(0);
upload(3, uri); // upload(3, uri);
} // }
break; break;
} }
} }
} }
private void upload(int position, Uri uri) { private void upload(Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); // File file = WorkUtils.uriToFile(uri, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File file;
if (uri instanceof Uri) {
// file = WorkUtils.uriToFile((Uri) uri, this);
file = UriUtils.uri2File((Uri) uri);
} else {
file = new File(uri.toString());
}
File uploadFile = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), uploadFile);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -256,27 +309,41 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity { ...@@ -256,27 +309,41 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
toast(data.getMessage()); toast(data.getMessage());
return; return;
} }
if (imgList.size() < 10) {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(uploadFile.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(uploadFile));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) {
case 1: imgList.add(imgList.size() - 1, imageBean);
GlideUtils.getRequest().load(uri).into(ivImg1); imgAddAdapter.notifyDataSetChanged();
annexMap.put(1, imageBean); imageBean.setUri((Uri) uri);
break;
case 2:
GlideUtils.getRequest().load(uri).into(ivImg2);
annexMap.put(2, imageBean);
break;
case 3:
GlideUtils.getRequest().load(uri).into(ivImg3);
annexMap.put(3, imageBean);
break;
} }
// toast("上传成功");
// ImageBean imageBean = new ImageBean();
// imageBean.setPath(data.getData().toString());
// imageBean.setName(file.getName());
// imageBean.setSize(FileUtils.getFileLength(file));
// imageBean.setType(data.getData().toString().split("\\.")[1]);
// switch (position) {
// case 1:
// GlideUtils.getRequest().load(uri).into(ivImg1);
// annexMap.put(1, imageBean);
// break;
// case 2:
// GlideUtils.getRequest().load(uri).into(ivImg2);
// annexMap.put(2, imageBean);
// break;
// case 3:
// GlideUtils.getRequest().load(uri).into(ivImg3);
// annexMap.put(3, imageBean);
// break;
// }
} }
}); });
} }
} }
...@@ -16,6 +16,7 @@ import android.widget.RelativeLayout; ...@@ -16,6 +16,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
...@@ -419,11 +420,13 @@ public class MesTicketAddSummaryActivity extends WorkToolBarActivity { ...@@ -419,11 +420,13 @@ public class MesTicketAddSummaryActivity extends WorkToolBarActivity {
showLoading(); showLoading();
File file; File file;
if (uri instanceof Uri) { if (uri instanceof Uri) {
file = WorkUtils.uriToFile((Uri) uri, this); // file = WorkUtils.uriToFile((Uri) uri, this);
file = UriUtils.uri2File((Uri) uri);
} else { } else {
file = new File(uri.toString()); file = new File(uri.toString());
} }
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), smallImg);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -448,8 +451,8 @@ public class MesTicketAddSummaryActivity extends WorkToolBarActivity { ...@@ -448,8 +451,8 @@ public class MesTicketAddSummaryActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
if (type == 1) { if (type == 1) {
......
...@@ -12,6 +12,7 @@ import android.widget.EditText; ...@@ -12,6 +12,7 @@ import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -237,8 +238,9 @@ public class MesOtherSupplierAddActivity extends WorkToolBarActivity { ...@@ -237,8 +238,9 @@ public class MesOtherSupplierAddActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),smallImg);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -263,8 +265,8 @@ public class MesOtherSupplierAddActivity extends WorkToolBarActivity { ...@@ -263,8 +265,8 @@ public class MesOtherSupplierAddActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -12,6 +12,7 @@ import android.widget.EditText; ...@@ -12,6 +12,7 @@ import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -343,8 +344,9 @@ public class MesOtherSupplierModifyActivity extends WorkToolBarActivity { ...@@ -343,8 +344,9 @@ public class MesOtherSupplierModifyActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), smallImg);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -369,8 +371,8 @@ public class MesOtherSupplierModifyActivity extends WorkToolBarActivity { ...@@ -369,8 +371,8 @@ public class MesOtherSupplierModifyActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout; ...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -261,8 +262,9 @@ public class MesPackageAddActivity extends WorkToolBarActivity { ...@@ -261,8 +262,9 @@ public class MesPackageAddActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), smallImg);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -287,8 +289,8 @@ public class MesPackageAddActivity extends WorkToolBarActivity { ...@@ -287,8 +289,8 @@ public class MesPackageAddActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout; ...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -374,8 +375,9 @@ public class MesPackageModifyActivity extends WorkToolBarActivity { ...@@ -374,8 +375,9 @@ public class MesPackageModifyActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), smallImg );
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -400,8 +402,8 @@ public class MesPackageModifyActivity extends WorkToolBarActivity { ...@@ -400,8 +402,8 @@ public class MesPackageModifyActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -15,6 +15,7 @@ import android.widget.RelativeLayout; ...@@ -15,6 +15,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -294,8 +295,9 @@ public class MesThreeAddActivity extends WorkToolBarActivity { ...@@ -294,8 +295,9 @@ public class MesThreeAddActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),smallImg );
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -320,8 +322,8 @@ public class MesThreeAddActivity extends WorkToolBarActivity { ...@@ -320,8 +322,8 @@ public class MesThreeAddActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout; ...@@ -14,6 +14,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.UriUtils;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean; import com.wd.workoffice.app.BaseMesBean;
...@@ -412,8 +413,9 @@ public class MesThreeModifyActivity extends WorkToolBarActivity { ...@@ -412,8 +413,9 @@ public class MesThreeModifyActivity extends WorkToolBarActivity {
private void upload(int position, Uri uri) { private void upload(int position, Uri uri) {
showLoading(); showLoading();
File file = WorkUtils.uriToFile(uri, this); File file = UriUtils.uri2File((Uri) uri);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); File smallImg = WorkUtils.getSmallImg(file, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), smallImg);
RtfUtils.getMesRtf(). RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)). upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() { compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
...@@ -438,8 +440,8 @@ public class MesThreeModifyActivity extends WorkToolBarActivity { ...@@ -438,8 +440,8 @@ public class MesThreeModifyActivity extends WorkToolBarActivity {
toast("上传成功"); toast("上传成功");
ImageBean imageBean = new ImageBean(); ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString()); imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName()); imageBean.setName(smallImg.getName());
imageBean.setSize(FileUtils.getFileLength(file)); imageBean.setSize(FileUtils.getFileLength(smallImg));
imageBean.setType(data.getData().toString().split("\\.")[1]); imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) { switch (position) {
case 1: case 1:
......
...@@ -9,6 +9,7 @@ import com.bumptech.glide.load.ImageHeaderParser; ...@@ -9,6 +9,7 @@ import com.bumptech.glide.load.ImageHeaderParser;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.Config;
import com.wd.workoffice.bean.mesBean.ImageBean; import com.wd.workoffice.bean.mesBean.ImageBean;
import com.wd.workoffice.ui.activity.mes.ImageActivity; import com.wd.workoffice.ui.activity.mes.ImageActivity;
import com.wd.workoffice.util.GlideUtils; import com.wd.workoffice.util.GlideUtils;
...@@ -32,13 +33,13 @@ public class ImgAdapter extends BaseQuickAdapter<ImageBean, BaseViewHolder> { ...@@ -32,13 +33,13 @@ public class ImgAdapter extends BaseQuickAdapter<ImageBean, BaseViewHolder> {
@Override @Override
protected void convert(BaseViewHolder helper, ImageBean item) { protected void convert(BaseViewHolder helper, ImageBean item) {
ImageView ivImg = helper.getView(R.id.iv_img); ImageView ivImg = helper.getView(R.id.iv_img);
GlideUtils.getRequest().load(item.getUrl()).into(ivImg); GlideUtils.getRequest().load("http://124.129.27.194:81/" + item.getPath()).into(ivImg);
helper.addOnClickListener(R.id.iv_img); helper.addOnClickListener(R.id.iv_img);
ivImg.setOnClickListener(new View.OnClickListener() { ivImg.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Intent intent =new Intent(helper.getConvertView().getContext(), ImageActivity.class); Intent intent = new Intent(helper.getConvertView().getContext(), ImageActivity.class);
intent.putExtra( "url", item.getUrl()); intent.putExtra("url", "http://124.129.27.194:81/" + item.getPath());
startActivity(intent); startActivity(intent);
} }
}); });
......
...@@ -57,12 +57,12 @@ public class MesTicketLogAdapter extends BaseQuickAdapter<LogBean, BaseViewHolde ...@@ -57,12 +57,12 @@ public class MesTicketLogAdapter extends BaseQuickAdapter<LogBean, BaseViewHolde
// JzvdStd.startFullscreenDirectly(context, // JzvdStd.startFullscreenDirectly(context,
// JzvdStd.class, imgList.get(position).getUrl(), ""); // JzvdStd.class, imgList.get(position).getUrl(), "");
Intent intent =new Intent(context,VideoActivity.class); Intent intent =new Intent(context,VideoActivity.class);
intent.putExtra( "url", imgList.get(position).getUrl()); intent.putExtra( "url","http://124.129.27.194:81/" +imgList.get(position).getPath());
startActivity(intent); startActivity(intent);
}else { }else {
Intent intent =new Intent(context,ImageActivity.class); Intent intent =new Intent(context,ImageActivity.class);
intent.putExtra( "url", imgList.get(position).getUrl()); intent.putExtra( "url","http://124.129.27.194:81/" + imgList.get(position).getPath());
startActivity(intent); startActivity(intent);
} }
} }
......
...@@ -4,8 +4,10 @@ import android.annotation.SuppressLint; ...@@ -4,8 +4,10 @@ import android.annotation.SuppressLint;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.os.Environment;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -19,6 +21,8 @@ import android.widget.TextView; ...@@ -19,6 +21,8 @@ import android.widget.TextView;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.ImageUtils;
import com.bumptech.glide.load.ImageHeaderParser; import com.bumptech.glide.load.ImageHeaderParser;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.wd.workoffice.R; import com.wd.workoffice.R;
...@@ -39,7 +43,9 @@ import com.wd.workoffice.ui.adapter.StarAdapter; ...@@ -39,7 +43,9 @@ import com.wd.workoffice.ui.adapter.StarAdapter;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
...@@ -53,6 +59,7 @@ import cn.jpush.android.api.JPushInterface; ...@@ -53,6 +59,7 @@ import cn.jpush.android.api.JPushInterface;
import flexible.xd.android_base.network.rtfhttp.RtfHelper; import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.LogUtils; import flexible.xd.android_base.utils.LogUtils;
import id.zelory.compressor.Compressor;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -936,9 +943,9 @@ public class WorkUtils { ...@@ -936,9 +943,9 @@ public class WorkUtils {
returnContent = "购买服务"; returnContent = "购买服务";
break; break;
case "product": case "product":
if (TextUtils.equals(businessFormat,"PD")){ if (TextUtils.equals(businessFormat, "PD")) {
returnContent = "产品生产"; returnContent = "产品生产";
}else { } else {
returnContent = "产品转库存"; returnContent = "产品转库存";
} }
break; break;
...@@ -947,4 +954,55 @@ public class WorkUtils { ...@@ -947,4 +954,55 @@ public class WorkUtils {
} }
return returnContent; return returnContent;
} }
/**
* @return
*/
public static File getSmallImg(File img, Context context) {
long size = FileUtils.getLength(img);
if (size / 1024 > 1024) {
Bitmap bitmap = ImageUtils.getBitmap(img);
Bitmap bitmap1 = ImageUtils.compressByScale(bitmap, bitmap.getWidth() / 3 * 2, bitmap.getHeight() / 3 * 2);
// 0-100 100为不压缩
int quality = 80;
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath() +"/"+ System.currentTimeMillis());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 把压缩后的数据存放到baos中
bitmap1.compress(Bitmap.CompressFormat.JPEG, quality, baos);
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write(baos.toByteArray());
fos.flush();
fos.close();
long endSize = FileUtils.getLength(file);
if (endSize / 1024 > 1024) {
return getSmallImg(file, context);
}
} catch (Exception e) {
e.printStackTrace();
}
return file;
}
// long size = FileUtils.getLength(img);
// if (size / 1024 > 2 * 1024) {
// File compressedImage = null;
// try {
// compressedImage = new Compressor(context)
// .setQuality(30)
// .setCompressFormat(Bitmap.CompressFormat.JPEG)
//// .setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
//// Environment.DIRECTORY_PICTURES).getAbsolutePath())
// .compressToFile(img);
// long endSize = FileUtils.getLength(compressedImage);
// if (endSize / 1024 > 2 * 1024) {
// return getSmallImg(compressedImage,context);
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// return compressedImage;
// }
return img;
}
} }
...@@ -165,8 +165,13 @@ ...@@ -165,8 +165,13 @@
android:paddingVertical="13mm" android:paddingVertical="13mm"
android:text="上传现场照片/视频" android:text="上传现场照片/视频"
android:textSize="14sp" /> android:textSize="14sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm" />
<LinearLayout <LinearLayout
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="20mm"> android:paddingHorizontal="20mm">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论