设备照片管理页面 上传照片和删除照片接口完成
parent
022161c109
commit
7780f41e2c
@ -0,0 +1,260 @@
|
||||
package com.rehome.zhdcoa.adapter;
|
||||
|
||||
import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean;
|
||||
import static com.rehome.zhdcoa.utils.HttpUtils.showLog;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.rehome.zhdcoa.Contans;
|
||||
import com.rehome.zhdcoa.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.rehome.zhdcoa.adapter.luck.OnItemLongClickListener;
|
||||
import com.rehome.zhdcoa.bean.DeviceOnlineStatusImgBean;
|
||||
import com.rehome.zhdcoa.utils.HttpListener;
|
||||
import com.rehome.zhdcoa.utils.NohttpUtils;
|
||||
import com.yolanda.nohttp.NoHttp;
|
||||
import com.yolanda.nohttp.RequestMethod;
|
||||
import com.yolanda.nohttp.rest.CacheMode;
|
||||
import com.yolanda.nohttp.rest.OnResponseListener;
|
||||
import com.yolanda.nohttp.rest.Request;
|
||||
import com.yolanda.nohttp.rest.RequestQueue;
|
||||
import com.yolanda.nohttp.rest.Response;
|
||||
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.SSLSession;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
|
||||
public class DeviceOnlinePhotoGridViewAdapter extends RecyclerView.Adapter<DeviceOnlinePhotoGridViewAdapter.ViewHolder> {
|
||||
//public static final int TYPE_PICTURE = 2;
|
||||
private final LayoutInflater mInflater;
|
||||
private final ArrayList<String> list = new ArrayList<>();
|
||||
private Context context;
|
||||
private RequestQueue queue;
|
||||
private DeviceDeleteOnItemClickListener deleteItemClickListener;
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// public void delete(int position) {
|
||||
// try {
|
||||
//
|
||||
// if (position != RecyclerView.NO_POSITION && list.size() > position) {
|
||||
// list.remove(position);
|
||||
// notifyItemRemoved(position);
|
||||
// notifyItemRangeChanged(position, list.size());
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
|
||||
public DeviceOnlinePhotoGridViewAdapter(Context context, List<String> result, DeviceDeleteOnItemClickListener deleteItemClickListener,OnPicItemClickListener onItemClickListener) {
|
||||
this.mInflater = LayoutInflater.from(context);
|
||||
this.context = context;
|
||||
this.list.addAll(result);
|
||||
this.deleteItemClickListener = deleteItemClickListener;
|
||||
this.onItemClickListener=onItemClickListener;
|
||||
queue = NoHttp.newRequestQueue(1);
|
||||
}
|
||||
|
||||
|
||||
public ArrayList<String> getData() {
|
||||
return list;
|
||||
}
|
||||
|
||||
// public void remove(int position) {
|
||||
// if (position < list.size()) {
|
||||
// list.remove(position);
|
||||
// }
|
||||
// }
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
ImageView mImg;
|
||||
ImageView mIvDel;
|
||||
TextView tvDuration;
|
||||
View mView;
|
||||
|
||||
public ViewHolder(View view) {
|
||||
super(view);
|
||||
mImg = view.findViewById(R.id.fiv);
|
||||
mIvDel = view.findViewById(R.id.iv_del);
|
||||
tvDuration = view.findViewById(R.id.tv_duration);
|
||||
mView = view;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return list.size();
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public int getItemViewType(int position) {
|
||||
// return position;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 创建ViewHolder
|
||||
*/
|
||||
@Override
|
||||
public DeviceOnlinePhotoGridViewAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
|
||||
View view = mInflater.inflate(R.layout.adapter_device_online_photo, viewGroup, false);
|
||||
return new DeviceOnlinePhotoGridViewAdapter.ViewHolder(view);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置值
|
||||
*/
|
||||
@Override
|
||||
public void onBindViewHolder(final DeviceOnlinePhotoGridViewAdapter.ViewHolder viewHolder, @SuppressLint("RecyclerView") final int position) {
|
||||
viewHolder.mIvDel.setVisibility(View.VISIBLE);
|
||||
viewHolder.mImg.setEnabled(true);
|
||||
// viewHolder.mIvDel.setOnClickListener(view -> {
|
||||
// int index = viewHolder.getAbsoluteAdapterPosition();
|
||||
// if (index != RecyclerView.NO_POSITION && list.size() > index) {
|
||||
// list.remove(index);
|
||||
// notifyItemRemoved(index);
|
||||
// notifyItemRangeChanged(index, list.size());
|
||||
// }
|
||||
// });
|
||||
String mediaUrl = list.get(position);
|
||||
viewHolder.tvDuration.setVisibility(View.GONE);
|
||||
|
||||
// Glide.with(viewHolder.itemView.getContext())
|
||||
// .load(Uri.parse(mediaUrl))
|
||||
// .centerCrop()
|
||||
// .placeholder(R.color.app_color_f6)
|
||||
// .diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
// .into(viewHolder.mImg);
|
||||
|
||||
// Glide.with(viewHolder.itemView.getContext())
|
||||
// .load(mediaUrl)
|
||||
// .dontAnimate()
|
||||
// .skipMemoryCache(true)
|
||||
// .diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
// .placeholder(R.drawable.head_photo)
|
||||
// .into(viewHolder.mImg);
|
||||
|
||||
// showLog(mediaUrl);
|
||||
// Request<Bitmap> request = NoHttp.createImageRequest(mediaUrl);
|
||||
|
||||
// NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener<Bitmap>() {
|
||||
//
|
||||
// @Override
|
||||
// public void onSucceed(int what, com.yolanda.nohttp.rest.Response<Bitmap> response) {
|
||||
//
|
||||
// Bitmap picFile = response.get();
|
||||
// showLog(String.valueOf(picFile==null));
|
||||
// viewHolder.mImg.setImageBitmap(picFile);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onFailed(int what, com.yolanda.nohttp.rest.Response<Bitmap> response) {
|
||||
// showLog("设备图片加载失败");
|
||||
// }
|
||||
// });
|
||||
|
||||
Request<Bitmap> request = NoHttp.createImageRequest(mediaUrl);
|
||||
request.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK);
|
||||
|
||||
if (!TextUtils.isEmpty(mediaUrl)) {
|
||||
Log.i("app", "fullPath is:" + mediaUrl);
|
||||
if (!TextUtils.isEmpty(request.url())) {
|
||||
String url = request.url();
|
||||
if (url.startsWith("https://219.131.195.3:7100") || url.startsWith("https://219.131.195.3:7011") || url.startsWith("https://219.131.195.3:7081") || url.startsWith("https://219.131.195.3:7082")) {
|
||||
SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(context);
|
||||
if (socketFactory != null) {
|
||||
request.setSSLSocketFactory(socketFactory);
|
||||
request.setHostnameVerifier(new HostnameVerifier() {
|
||||
@Override
|
||||
public boolean verify(String s, SSLSession sslSession) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
queue.add(6, request, new OnResponseListener<>() {
|
||||
@Override
|
||||
public void onStart(int what) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSucceed(int what, Response<Bitmap> response) {
|
||||
Bitmap bitmap = response.get();
|
||||
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
|
||||
viewHolder.mImg.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(int what, Response<Bitmap> response) {
|
||||
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.head_photo);
|
||||
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
|
||||
viewHolder.mImg.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinish(int what) {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Log.i("app", "path is null");
|
||||
}
|
||||
|
||||
//itemView 的点击事件
|
||||
if (deleteItemClickListener != null) {
|
||||
//deleteItemClickListener.onItemClick(position);
|
||||
viewHolder.mIvDel.setOnClickListener(view -> {
|
||||
deleteItemClickListener.onItemClick(position);
|
||||
});
|
||||
}
|
||||
if(onItemClickListener != null){
|
||||
viewHolder.mImg.setOnClickListener(view -> {
|
||||
onItemClickListener.onItemClick(position);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// public void setOnItemClickListener(OnItemClickListener l) {
|
||||
// this.mItemClickListener = l;
|
||||
// }
|
||||
|
||||
public interface DeviceDeleteOnItemClickListener {
|
||||
/**
|
||||
* Item click event
|
||||
*
|
||||
* @param position
|
||||
*/
|
||||
void onItemClick(int position);
|
||||
}
|
||||
|
||||
// 接口定义
|
||||
public interface OnPicItemClickListener {
|
||||
void onItemClick(int position);
|
||||
}
|
||||
private OnPicItemClickListener onItemClickListener;
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.luck.picture.lib.widget.SquareRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/fiv"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:src="@color/app_color_f6" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_del"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/fiv"
|
||||
android:layout_alignRight="@id/fiv"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_item_delete"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_duration"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignLeft="@id/fiv"
|
||||
android:layout_alignRight="@id/fiv"
|
||||
android:layout_alignBottom="@id/fiv"
|
||||
android:background="@drawable/ps_ic_shadow_bg"
|
||||
android:drawableLeft="@drawable/ps_ic_video"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingTop="8dp"
|
||||
android:text="00:00"
|
||||
android:textColor="@color/app_color_white"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="gone" />
|
||||
</com.luck.picture.lib.widget.SquareRelativeLayout>
|
||||
Loading…
Reference in New Issue