feat:显示多图片

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

@ -54,4 +54,7 @@ dependencies {
implementation files('libs/SerialPort.jar') implementation files('libs/SerialPort.jar')
implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.android.material:material:1.11.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) { public void tekePhotoResult(String fileUrl, File file) {
super.tekePhotoResult(fileUrl, file); super.tekePhotoResult(fileUrl, file);
Log.e("TAG", "拍照成功,路径是:" + fileUrl); 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.R;
import com.example.tyre.databinding.DialogTireUpdateBinding; 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.BaseTyre;
import com.example.tyre.maintenance.been.BizOrderTireDetail; import com.example.tyre.maintenance.been.BizOrderTireDetail;
import com.example.tyre.maintenance.been.CheckInstanceFiles;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class TireUpdateDialog extends Dialog { public class TireUpdateDialog extends Dialog {
@ -36,7 +39,7 @@ public class TireUpdateDialog extends Dialog {
private BizOrderTireDetail newTireDetail;// 新轮胎 private BizOrderTireDetail newTireDetail;// 新轮胎
private TireUpdateDialogSaveListener listener; private TireUpdateDialogSaveListener listener;
private File image; private File image;
private ObservableBoolean photoState; // private ObservableBoolean photoState;
private TireChangeDialog tireChangeDialog;// 同车轮胎互换弹窗 private TireChangeDialog tireChangeDialog;// 同车轮胎互换弹窗
private List<BaseTyre> baseTyreList; private List<BaseTyre> baseTyreList;
private BaseTyre newBaseTyre; private BaseTyre newBaseTyre;
@ -100,8 +103,8 @@ public class TireUpdateDialog extends Dialog {
// 拍照按钮点击事件 // 拍照按钮点击事件
binding.dialogUpdatePhoto.setOnClickListener(view -> listener.onTakePhoto()); binding.dialogUpdatePhoto.setOnClickListener(view -> listener.onTakePhoto());
photoState = new ObservableBoolean(false); // photoState = new ObservableBoolean(false);
binding.setPhotoState(photoState); // binding.setPhotoState(photoState);
setContentView(binding.getRoot()); setContentView(binding.getRoot());
tireChangeDialog = new TireChangeDialog(context, new TireChangeDialog.TireChangeListener() { tireChangeDialog = new TireChangeDialog(context, new TireChangeDialog.TireChangeListener() {
@Override @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) { public void setNewBaseTyre(BaseTyre newBaseTyre) {
@ -151,8 +159,9 @@ public class TireUpdateDialog extends Dialog {
newTireDetail.setDataType("换新胎,装车"); newTireDetail.setDataType("换新胎,装车");
newTireDetail.setTireStatus("换新胎,装车"); newTireDetail.setTireStatus("换新胎,装车");
// 重置ui // 重置ui
photoState.set(false); // photoState.set(false);
binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_xiangji); binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_xiangji);
filesList=new ArrayList<>();
show(); show();
} }
@ -180,11 +189,18 @@ public class TireUpdateDialog extends Dialog {
// 点击外部不关闭 // 点击外部不关闭
setCanceledOnTouchOutside(false); setCanceledOnTouchOutside(false);
} }
private DisposalFileAdapter disposalFileAdapter;
public void setImage(File image) { private List<CheckInstanceFiles> filesList ;
public void setImage(String fileUrl,File image) {
this.image = image; this.image = image;
photoState.set(true); // photoState.set(true);
binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_duihao); // 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 { public interface TireUpdateDialogSaveListener {

@ -161,6 +161,27 @@
android:textColor="@color/textColor1" android:textColor="@color/textColor1"
app:layout_columnWeight="1" /> 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 <View
android:layout_height="1dp" android:layout_height="1dp"
@ -177,8 +198,8 @@
<Switch <Switch
android:layout_height="40dp" android:layout_height="40dp"
android:visibility="gone"
android:textColor="@color/textColor1" android:textColor="@color/textColor1"
android:visibility="gone"
app:layout_columnWeight="1" app:layout_columnWeight="1"
tools:ignore="UseSwitchCompatOrMaterialXml" /> tools:ignore="UseSwitchCompatOrMaterialXml" />
@ -290,7 +311,50 @@
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:gravity="left|center" 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" android:textColor="@color/textColor1"
app:layout_columnWeight="1" /> app:layout_columnWeight="1" />
@ -338,16 +402,35 @@
app:layout_columnWeight="1" /> 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 <ImageView
android:id="@+id/dialog_update_photo" android:id="@+id/dialog_update_photo"
style="@style/text_block_style" style="@style/text_block_style"
android:layout_width="100dp" android:layout_width="50dp"
android:layout_height="100dp" android:layout_height="50dp"
android:background="@drawable/bg_block_img_selector" android:background="@drawable/bg_block_img_selector"
android:padding="30dp" android:padding="10dp"
android:selected="@{photoState}" android:src="@mipmap/ic_xiangji"
/>
app:layout_columnSpan="2" /> </LinearLayout>
<View <View
android:layout_height="1dp" android:layout_height="1dp"
@ -471,10 +554,10 @@
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:gravity="center" android:gravity="center"
android:textColor="@color/textColor1" android:hint="输入轮胎自编号"
app:layout_columnWeight="1"
android:inputType="textVisiblePassword" android:inputType="textVisiblePassword"
android:hint="输入轮胎自编号"/> android:textColor="@color/textColor1"
app:layout_columnWeight="1" />
<View <View
android:layout_height="1dp" 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