石慧云 4 年之前
父节点
当前提交
c3155dac8b

+ 3 - 0
app/build.gradle

@@ -129,4 +129,7 @@ dependencies {
    //选择图片
     implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.5.8'
 
+    //高仿微信朋友圈图片展示效果 ImageWatcher
+    implementation 'com.github.iielse:ImageWatcher:1.1.5'
+
 }

+ 0 - 3
app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerMoreFragment.kt

@@ -255,7 +255,6 @@ class OwnerMoreFragment : MBFragment<OwnerMoreVModel, FragmentOwnermoreBinding>(
         if(null!=info.default_send){
             binding.viewHead.getTvCity()!!.text = info.default_send.province.name + info.default_send.city.name + info.default_send.area.name
             binding.viewHead.getEtDetailedAddress()!!.setText(info.default_send.address)
-            binding.viewHead.getTvChoseTime()!!.text = info.default_send.create_time
             binding.viewHead.getEtName()!!.setText(info.default_send.name)
             binding.viewHead.getEtPhone()!!.setText(info.default_send.mobile)
             lat_out = info.default_send.lat.toString()
@@ -263,7 +262,6 @@ class OwnerMoreFragment : MBFragment<OwnerMoreVModel, FragmentOwnermoreBinding>(
             area_out = info.default_send.area!!.code.toString()
             province_out = info.default_send.province!!.code.toString()
             city_out = info.default_send.city!!.code.toString()
-            time_out = info.default_send.create_time.toString()
         }
 
         binding.viewHead.getImgNext()!!.setOnClickListener {
@@ -401,7 +399,6 @@ class OwnerMoreFragment : MBFragment<OwnerMoreVModel, FragmentOwnermoreBinding>(
                 if (vm.type == 1) {
                     binding.viewHead.getTvCity()!!.text = item.province?.name + item.city?.name + item.area?.name
                     binding.viewHead.getEtDetailedAddress()!!.setText(item.address)
-                    binding.viewHead.getTvChoseTime()!!.text = item.create_time
                     binding.viewHead.getEtName()!!.setText(item.name)
                     binding.viewHead.getEtPhone()!!.setText(item.mobile)
                     lat_out = item.lat.toString()

+ 0 - 6
app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt

@@ -361,7 +361,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         if(null!=info.default_send){
             binding.viewHead.getTvCity()!!.text = info.default_send.province.name + info.default_send.city.name + info.default_send.area.name
             binding.viewHead.getEtDetailedAddress()!!.setText(info.default_send.address)
-            binding.viewHead.getTvChoseTime()!!.text = info.default_send.create_time
             binding.viewHead.getEtName()!!.setText(info.default_send.name)
             binding.viewHead.getEtPhone()!!.setText(info.default_send.mobile)
             lat_out = info.default_send.lat.toString()
@@ -374,7 +373,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
 
             binding.viewEnter.getTvCity()!!.text = info.default_receive.province?.name + info.default_receive.city?.name + info.default_receive.area?.name
             binding.viewEnter.getEtDetailedAddress()!!.setText(info.default_receive.address)
-            binding.viewEnter.getTvChoseTime()!!.text = info.default_receive.create_time
             binding.viewEnter.getEtName()!!.setText(info.default_receive.name)
             binding.viewEnter.getEtPhone()!!.setText(info.default_receive.mobile)
             lat_in = info.default_receive.lat.toString()
@@ -519,7 +517,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
                 if (type == 1) {
                     binding.viewHead.getTvCity()!!.text = item.province?.name + item.city?.name + item.area?.name
                     binding.viewHead.getEtDetailedAddress()!!.setText(item.address)
-                    binding.viewHead.getTvChoseTime()!!.text = item.create_time
                     binding.viewHead.getEtName()!!.setText(item.name)
                     binding.viewHead.getEtPhone()!!.setText(item.mobile)
                     lat_out = item.lat.toString()
@@ -527,13 +524,11 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
                     area_out = item.area!!.code.toString()
                     province_out = item.province!!.code.toString()
                     city_out = item.city!!.code.toString()
-                    time_out = item.create_time.toString()
 
                 } else {
 
                     binding.viewEnter.getTvCity()!!.text = item.province?.name + item.city?.name + item.area?.name
                     binding.viewEnter.getEtDetailedAddress()!!.setText(item.address)
-                    binding.viewEnter.getTvChoseTime()!!.text = item.create_time
                     binding.viewEnter.getEtName()!!.setText(item.name)
                     binding.viewEnter.getEtPhone()!!.setText(item.mobile)
                     lat_in = item.lat.toString()
@@ -541,7 +536,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
                     area_in = item.area!!.code.toString()
                     province_in = item.province!!.code.toString()
                     city_in = item.city!!.code.toString()
-                    time_in = item.create_time.toString()
                 }
 
             }

+ 2 - 1
app/src/main/java/com/quansu/heifengwuliu/model/InfoListBean.kt

@@ -16,7 +16,8 @@ data class InfoListBean(var info_id: String, var info_state: Int,
                         var is_insurance: String, var type: String,
                         var data: String, var pay_time: String,
                         var create_time: String, var update_time: String,
-                        var delete_time: String, var send: List<SendBean>,
+                        var delete_time: String, var qrcode:String,
+                        var send: List<SendBean>,
                         var receive: List<ReceiveBean>,var type_info:TypeInfoBean) : IModel {
 
     data class TypeInfoBean(var type_id: String,var type_name: String, @SerializedName("long") var longx: String,

+ 15 - 0
app/src/main/java/com/quansu/heifengwuliu/utils/LoadSimpleLoader.kt

@@ -0,0 +1,15 @@
+package com.quansu.heifengwuliu.utils
+
+import android.content.Context
+import android.net.Uri
+import com.github.ielse.imagewatcher.ImageWatcher
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/18
+ */
+class LoadSimpleLoader : ImageWatcher.Loader{
+    override fun load(context: Context?, uri: Uri?, lc: ImageWatcher.LoadCallback?) {
+
+    }
+}

+ 118 - 0
app/src/main/java/com/quansu/heifengwuliu/utils/LookImgsUtils.kt

@@ -0,0 +1,118 @@
+package com.quansu.heifengwuliu.utils
+
+import android.R
+import android.app.Activity
+import android.content.Context
+import android.net.Uri
+import android.util.Log
+import android.util.SparseArray
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.core.view.ViewCompat
+import com.github.ielse.imagewatcher.ImageWatcherHelper
+import java.util.*
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/18
+ */
+object LookImgsUtils {
+
+
+    /**
+     * @param context
+     * @param imageView  当前点击的图片的容器
+     * @param i
+     * @param list
+     * @param imageViewslist
+     */
+    fun setDataImageWAtcher(context: Context, imageView: ImageView, i: Int, list: List<String>, imageViewslist: List<ImageView?>) {
+        //图片
+        val urls: MutableList<String> = ArrayList()
+        for (ss in list) {
+            if (ss.contains("?")) {
+                val index = ss.indexOf("?")
+                urls.add(ss.substring(0, index))
+                Log.e("-shy-", "url=: " + ss.substring(0, index))
+                // urls.add(url);
+            } else {
+                urls.add(ss)
+            }
+        }
+
+        //控件
+        val imlist: MutableList<ImageView> = ArrayList()
+        if (list.size == 1) {
+            imlist.add(imageView)
+        } else {
+            Log.e("-shy-", "imageViewslist=: " + imageViewslist.size)
+            imlist.addAll(imageViewslist)
+        }
+        setDataImageWAtcher(context, i, urls, imlist)
+    }
+
+    fun setDataImageWAtcher(context: Context, position: Int, images: List<String>, imageViewslist: List<ImageView>) {
+        val mapping = SparseArray<ImageView>() // 这个请自行理解,
+        val dataList: MutableList<Uri> = ArrayList()
+        var clickedImage: ImageView? = null
+        var i = 0
+        for (iv in imageViewslist) {
+            if (i == position) {
+                clickedImage = iv
+            }
+            mapping.put(i, iv)
+            //  dataList.add(Uri.parse(images.get(i)));
+            val ss = images[i]
+            if (ss.contains("?")) {
+                val substring = ss.substring(0, ss.indexOf("?"))
+                dataList.add(Uri.parse(substring))
+            } else {
+                dataList.add(Uri.parse(ss))
+            }
+            i++
+        }
+        val iwHelper: ImageWatcherHelper = ImageWatcherHelper.with(context as Activity, LoadSimpleLoader()) // SimpleLoader demo中有简单实现
+
+        // iwHelper.setTranslucentStatus(45);
+        val layDecoration = DecorationLayout(context) // SimpleLoader demo中有简单实现
+        iwHelper.setOnStateChangedListener(object : OnStateChangedListener() {
+            fun onStateChangeUpdate(imageWatcher: ImageWatcher?, imageView: ImageView?, i: Int, uri: Uri?, v: Float, i1: Int) {}
+            fun onStateChanged(imageWatcher: ImageWatcher?, i: Int, uri: Uri?, actionTag: Int) {
+                if (actionTag == ImageWatcher.STATE_ENTER_DISPLAYING) {
+                    App.getInstance().iwHelper = iwHelper
+                    //                    layDecoration.setVisibility(VISIBLE);
+                } else if (actionTag == ImageWatcher.STATE_EXIT_HIDING) { //退出了查看大图
+//                    layDecoration.setVisibility(GONE);
+                    App.getInstance().iwHelper = null
+                }
+            }
+        }).setOtherView(layDecoration)
+                .addOnPageChangeListener(layDecoration)
+                .setLoadingUIProvider(CustomLoadingUIProvider2())
+        App.getInstance().iwHelper = iwHelper
+        layDecoration.attachImageWatcher(iwHelper)
+        iwHelper.show(clickedImage, mapping, dataList)
+        fitsSystemWindow(context, layDecoration)
+    }
+
+    private fun fitsSystemWindow(activity: Activity, otherView: View) {
+        var adjustByRoot = false
+        val content = activity.findViewById<View>(R.id.content)
+        if (content is ViewGroup) {
+            val root = content.getChildAt(0)
+            if (root != null) {
+                val fitsSystemWindows = ViewCompat.getFitsSystemWindows(root)
+                if (fitsSystemWindows) {
+                    otherView.setPadding(root.paddingLeft, root.paddingTop, root.paddingRight, root.paddingBottom)
+                    adjustByRoot = true
+                }
+            }
+        }
+        if (!adjustByRoot) {
+            ViewCompat.requestApplyInsets(otherView)
+        }
+    }
+
+
+}