feat:显示多图片

asv2022.3.1
wanghao 1 week ago
parent 177d5669f8
commit 514493afe7

@ -54,4 +54,7 @@ dependencies {
implementation files('libs/SerialPort.jar')
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.github.xuexiangjys:XUpdate:2.1.4'
implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-easy:1.0.1'
implementation 'com.github.bumptech.glide:glide:4.16.0'
}

@ -296,7 +296,7 @@ public class WorkExecuteActivity extends BaseActivity {
public void tekePhotoResult(String fileUrl, File file) {
super.tekePhotoResult(fileUrl, file);
Log.e("TAG", "拍照成功,路径是:" + fileUrl);
tireUpdateDialog.setImage(file);
tireUpdateDialog.setImage(fileUrl,file);
}
// 删除实时表、卸车记录表

@ -0,0 +1,92 @@
package com.example.tyre.maintenance.adapter;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.example.tyre.BR;
import com.example.tyre.R;
import com.example.tyre.databinding.ItemDisposalImgBinding;
import com.example.tyre.maintenance.been.CheckInstanceFiles;
import java.util.List;
/**
* @author wanghao
* @date 2024/3/11
*/
public class DisposalFileAdapter extends RecyclerView.Adapter<DisposalFileAdapter.MyViewHolder> {
private List<CheckInstanceFiles> list;
private static Context context;
private LayoutInflater inflater;
private ItemClickCall clickCall;
private boolean delectState=false;
public void setDelectState(boolean delectState) {
this.delectState = delectState;
}
public DisposalFileAdapter(Context context, ItemClickCall clickCall) {
this.context = context;
this.clickCall = clickCall;
inflater = LayoutInflater.from(context);
}
public void setList(List<CheckInstanceFiles> list) {
this.list = list;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ItemDisposalImgBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_disposal_img, parent, false);
return new MyViewHolder(binding);
}
// @SuppressLint("CheckResult")
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
var outstock = list.get(position);
var binding = holder.binding;
binding.setVariable(BR.vm,outstock);
Log.e("TAG", "onBindViewHolder:" + outstock.isState());
Glide.with(context)
.load(outstock.getFaultFile())
.into(binding.disFile);
binding.disFile.setOnClickListener(v -> clickCall.onClick(position,true));
if (delectState){
binding.disposalDelect.setVisibility(View.GONE);
}else{
binding.disposalDelect.setVisibility(View.VISIBLE);
binding.disposalDelect.setOnClickListener(v -> clickCall.onClick(position,false));
}
}
@Override
public int getItemCount() {
return list==null?0:list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
private ItemDisposalImgBinding binding;
public MyViewHolder(ItemDisposalImgBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}
public interface ItemClickCall {
void onClick(int position,boolean type);
}
}

@ -0,0 +1,37 @@
package com.example.tyre.maintenance.been;
import androidx.databinding.BaseObservable;
/**
* @author wanghao
*
* @date 2024/3/11 10:00
*/
public class CheckInstanceFiles extends BaseObservable {
private String faultFile;
private boolean state=false;
public boolean isState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
public String getFaultFile() {
return faultFile;
}
public void setFaultFile(String faultFile) {
this.faultFile = faultFile;
}
@Override
public String toString() {
return "CheckInstanceFiles{" +
"faultFile='" + faultFile + '\'' +
'}';
}
}

@ -22,10 +22,13 @@ import androidx.databinding.ObservableBoolean;
import com.example.tyre.R;
import com.example.tyre.databinding.DialogTireUpdateBinding;
import com.example.tyre.maintenance.adapter.DisposalFileAdapter;
import com.example.tyre.maintenance.been.BaseTyre;
import com.example.tyre.maintenance.been.BizOrderTireDetail;
import com.example.tyre.maintenance.been.CheckInstanceFiles;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class TireUpdateDialog extends Dialog {
@ -36,7 +39,7 @@ public class TireUpdateDialog extends Dialog {
private BizOrderTireDetail newTireDetail;// 新轮胎
private TireUpdateDialogSaveListener listener;
private File image;
private ObservableBoolean photoState;
// private ObservableBoolean photoState;
private TireChangeDialog tireChangeDialog;// 同车轮胎互换弹窗
private List<BaseTyre> baseTyreList;
private BaseTyre newBaseTyre;
@ -100,8 +103,8 @@ public class TireUpdateDialog extends Dialog {
// 拍照按钮点击事件
binding.dialogUpdatePhoto.setOnClickListener(view -> listener.onTakePhoto());
photoState = new ObservableBoolean(false);
binding.setPhotoState(photoState);
// photoState = new ObservableBoolean(false);
// binding.setPhotoState(photoState);
setContentView(binding.getRoot());
tireChangeDialog = new TireChangeDialog(context, new TireChangeDialog.TireChangeListener() {
@Override
@ -111,8 +114,13 @@ public class TireUpdateDialog extends Dialog {
});
disposalFileAdapter=new DisposalFileAdapter(context, new DisposalFileAdapter.ItemClickCall() {
@Override
public void onClick(int position, boolean type) {
}
});
}
// 换新胎了
public void setNewBaseTyre(BaseTyre newBaseTyre) {
@ -151,8 +159,9 @@ public class TireUpdateDialog extends Dialog {
newTireDetail.setDataType("换新胎,装车");
newTireDetail.setTireStatus("换新胎,装车");
// 重置ui
photoState.set(false);
// photoState.set(false);
binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_xiangji);
filesList=new ArrayList<>();
show();
}
@ -180,11 +189,18 @@ public class TireUpdateDialog extends Dialog {
// 点击外部不关闭
setCanceledOnTouchOutside(false);
}
public void setImage(File image) {
private DisposalFileAdapter disposalFileAdapter;
private List<CheckInstanceFiles> filesList ;
public void setImage(String fileUrl,File image) {
this.image = image;
photoState.set(true);
binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_duihao);
// photoState.set(true);
// binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_duihao);
CheckInstanceFiles checkInstanceFiles = new CheckInstanceFiles();
checkInstanceFiles.setFaultFile(fileUrl);
checkInstanceFiles.setState(true);
filesList.add(checkInstanceFiles);
disposalFileAdapter.notifyDataSetChanged();
}
public interface TireUpdateDialogSaveListener {

@ -161,6 +161,27 @@
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<View
android:layout_height="1dp"
android:layout_marginTop="8dp"
android:background="#F1F1F1"
app:layout_columnSpan="2" />
<TextView
android:layout_height="40dp"
android:gravity="left|center"
android:text="花纹初始深度"
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<TextView
android:layout_height="40dp"
android:gravity="right|center"
android:text='@{tire.patternDepth+" mm"}'
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<View
android:layout_height="1dp"
@ -177,8 +198,8 @@
<Switch
android:layout_height="40dp"
android:visibility="gone"
android:textColor="@color/textColor1"
android:visibility="gone"
app:layout_columnWeight="1"
tools:ignore="UseSwitchCompatOrMaterialXml" />
@ -290,7 +311,50 @@
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:gravity="left|center"
android:text="胎压"
android:text="保养前胎压"
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<LinearLayout
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:background="@drawable/bg_grey"
android:gravity="center"
android:orientation="horizontal"
android:padding="5dp"
app:layout_columnWeight="1">
<EditText
android:id="@+id/dialog_tire_taiya_old"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/blue1_3"
android:gravity="center"
android:inputType="numberDecimal"
android:textColor="@color/textColor1" />
<TextView
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_marginEnd="4dp"
android:background="@drawable/bg_blue1_2"
android:gravity="center"
android:text="kpa"
android:textColor="@color/blue1_1" />
</LinearLayout>
<View
android:layout_height="1dp"
android:layout_marginTop="8dp"
android:background="#F1F1F1"
app:layout_columnSpan="2" />
<TextView
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:gravity="left|center"
android:text="保养后胎压"
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
@ -338,16 +402,35 @@
app:layout_columnWeight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_marginTop="5dp"
android:background="@color/white"
android:orientation="horizontal"
app:layout_columnSpan="2">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:adapter="@{adapter1}"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<ImageView
android:id="@+id/dialog_update_photo"
style="@style/text_block_style"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/bg_block_img_selector"
android:padding="30dp"
android:selected="@{photoState}"
app:layout_columnSpan="2" />
android:padding="10dp"
android:src="@mipmap/ic_xiangji"
/>
</LinearLayout>
<View
android:layout_height="1dp"
@ -471,10 +554,10 @@
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:textColor="@color/textColor1"
app:layout_columnWeight="1"
android:hint="输入轮胎自编号"
android:inputType="textVisiblePassword"
android:hint="输入轮胎自编号"/>
android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<View
android:layout_height="1dp"

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="vm"
type="com.example.tyre.maintenance.been.CheckInstanceFiles" />
<import type="android.view.View" />
</data>
<FrameLayout
android:layout_width="80dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_picture_err"
android:padding="20dp"/>
<ImageView
android:id="@+id/dis_file"
android:paddingTop="5dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/disposal_delect"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@mipmap/ic_cha1" />
</FrameLayout>
</layout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Loading…
Cancel
Save