Просмотр исходного кода

增加责任医生和护士头像显示

weizhengliang 1 год назад
Родитель
Сommit
397e730d26

+ 2 - 2
app/src/main/AndroidManifest.xml

@@ -31,9 +31,9 @@
         android:networkSecurityConfig="@xml/network_security_config"
         android:name="com.wdkl.app.ncs.application.Application"
         android:theme="@style/MyAppTheme">
-        <meta-data
+        <!--<meta-data
             android:name="com.enation.javashop.imagepluin.cache.MyGlideModule"
-            android:value="GlideModule" />
+            android:value="GlideModule" />-->
         <meta-data
             android:name="design_width_in_dp"
             android:value="1024"/>

+ 3 - 0
callingdoor/src/main/AndroidManifest.xml

@@ -9,6 +9,9 @@
     <uses-permission android:name="android.permission.BLUETOOTH"/>
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
 
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+
     <application
         android:allowBackup="true"
         android:label="@string/javashop_app_name"

+ 43 - 5
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/adapter/FrameRoomAdapter.kt

@@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable
 import android.support.v7.widget.RecyclerView
 import android.text.TextUtils
 import android.util.Log
+import android.view.Gravity
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -15,7 +16,10 @@ import android.view.animation.LinearInterpolator
 import android.widget.ImageView
 import android.widget.LinearLayout
 import android.widget.TextView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.engine.DiskCacheStrategy
 import com.wdkl.app.ncs.callingdoor.R
+import com.wdkl.ncs.android.lib.utils.DensityUtils
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.model.dto.NurseConfigDto
 import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
@@ -65,7 +69,7 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
     }
 
     override fun getItemCount(): Int {
-        if (data.size <= 3) {
+        if (data.size <= 2) {
             return data.size
         } else {
             return Int.MAX_VALUE
@@ -100,6 +104,18 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
                 clearAnimator(holder.bedName)
             }
 
+            /*if (data.size == 1) {
+                val layoutParams = LinearLayout.LayoutParams(DensityUtils.dp2px(context, 392f), ViewGroup.LayoutParams.MATCH_PARENT)
+                layoutParams.setMargins(214, 4, 4, 4)
+                layoutParams.gravity = Gravity.CENTER
+                holder.bedItem.setLayoutParams(layoutParams)
+            } else {
+                val layoutParams = LinearLayout.LayoutParams(DensityUtils.dp2px(context, 392f), ViewGroup.LayoutParams.MATCH_PARENT)
+                layoutParams.setMargins(4, 4, 4, 4)
+                layoutParams.gravity = Gravity.CENTER
+                holder.bedItem.setLayoutParams(layoutParams)
+            }*/
+
             if (TextUtils.isEmpty(bedVO.customerName)) {
                 //空床位
                 holder.customName.setText("空床位")
@@ -146,21 +162,35 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
                 }
 
                 if (Constant.doctorValid == 1) {
-                    //holder.doctorIcon.visibility = View.VISIBLE
+                    holder.doctorIcon.visibility = View.VISIBLE
                     holder.doctorTitle.visibility = View.VISIBLE
                     holder.doctorName.visibility = View.VISIBLE
+
+                    Glide.with(context)
+                        .load(bedVO.doctorFace)
+                        //.skipMemoryCache(true)
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)
+                        .placeholder(R.mipmap.doctor_default)//占位图
+                        .into(holder.doctorIcon)
                 } else {
-                    //holder.doctorIcon.visibility = View.GONE
+                    holder.doctorIcon.visibility = View.GONE
                     holder.doctorTitle.visibility = View.GONE
                     holder.doctorName.visibility = View.GONE
                 }
 
                 if (Constant.nurseValid == 1) {
-                    //holder.nurseIcon.visibility = View.VISIBLE
+                    holder.nurseIcon.visibility = View.VISIBLE
                     holder.nurseTitle.visibility = View.VISIBLE
                     holder.nurseName.visibility = View.VISIBLE
+
+                    Glide.with(context)
+                        .load(bedVO.nurseFace)
+                        //.skipMemoryCache(true)
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)
+                        .placeholder(R.mipmap.nurse_default)//占位图
+                        .into(holder.nurseIcon)
                 } else {
-                    //holder.nurseIcon.visibility = View.GONE
+                    holder.nurseIcon.visibility = View.GONE
                     holder.nurseTitle.visibility = View.GONE
                     holder.nurseName.visibility = View.GONE
                 }
@@ -170,6 +200,14 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
         }
     }
 
+    override fun onViewRecycled(holder: BedViewHolder?) {
+        if (holder != null) {
+            Glide.clear(holder.doctorIcon)
+            Glide.clear(holder.nurseIcon)
+        }
+        super.onViewRecycled(holder)
+    }
+
     private fun startAnimator(view: View) {
         /*val animator: ValueAnimator = ObjectAnimator.ofInt(view, "backgroundColor", 0x22ff0000, 0x77ff0000) //对背景色颜色进行改变,操作的属性为"backgroundColor",此处必须这样写,不能全小写,后面的颜色为在对应颜色间进行渐变
         animator.duration = 1500

+ 1 - 1
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/MainFragment.kt

@@ -67,7 +67,7 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainViewLayoutBinding>()
             roomAdapter.setData(bedList)
             Utils.setInBedVos(bedList)
             rv_bed_view.itemAnimator = DefaultItemAnimator()
-            if (bedList.size > 3) {
+            if (bedList.size > 2) {
                 //自动滚动显示
                 rv_bed_view.start()
             } else {

+ 3 - 2
callingdoor/src/main/res/layout/callingdoor_main_lay.xml

@@ -27,7 +27,7 @@
         <LinearLayout
             android:id="@+id/ll_room_name"
             android:layout_width="match_parent"
-            android:layout_height="154dp"
+            android:layout_height="140dp"
             android:layout_marginLeft="20dp"
             android:layout_marginRight="20dp"
             android:layout_below="@id/activity_calling_door_layout_title">
@@ -47,7 +47,8 @@
                 android:singleLine="true"
                 android:ellipsize="marquee"
                 android:focusable="true"
-                android:focusableInTouchMode="true" />
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"/>
 
             <ViewFlipper
                 android:id="@+id/view_flipper"

+ 2 - 1
callingdoor/src/main/res/layout/callingdoor_main_lay_rk3288.xml

@@ -29,7 +29,8 @@
                 android:focusableInTouchMode="true"
                 android:text="--房"
                 android:textColor="@color/main_color"
-                android:textSize="140sp" />
+                android:textSize="140sp"
+                android:marqueeRepeatLimit="marquee_forever"/>
 
             <ViewFlipper
                 android:id="@+id/view_flipper"

+ 41 - 38
callingdoor/src/main/res/layout/item_bed.xml

@@ -1,59 +1,62 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/ll_item_bed"
-    android:layout_width="264dp"
+    android:layout_width="392dp"
     android:layout_height="match_parent"
     android:layout_margin="4dp"
     android:background="@drawable/shape_bed_item_bg"
     android:orientation="vertical"
-    android:gravity="center">
+    android:gravity="center_horizontal">
 
     <com.wdkl.ncs.android.lib.widget.MarqueeTextView
         android:id="@+id/tv_bed_name_title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:padding="4dp"
         android:text="--"
         android:textColor="@color/bed_text_color"
-        android:textSize="60sp"
+        android:textSize="56sp"
         android:textStyle="bold"
         android:singleLine="true"
         android:ellipsize="marquee"
         android:focusable="true"
-        android:focusableInTouchMode="true"/>
+        android:focusableInTouchMode="true"
+        android:marqueeRepeatLimit="marquee_forever"/>
 
-    <TextView
-        android:id="@+id/bed_customer_name"
+    <LinearLayout
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="20dp"
-        android:gravity="center"
-        android:text="--"
-        android:textColor="@color/black"
-        android:textSize="36sp" />
+        android:layout_height="wrap_content">
+        <TextView
+            android:id="@+id/bed_customer_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:text="--"
+            android:textColor="@color/black"
+            android:textSize="32sp" />
 
-    <TextView
-        android:id="@+id/bed_customer_age"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="10dp"
-        android:textColor="@color/black"
-        android:text="--"
-        android:textSize="24sp" />
+        <TextView
+            android:id="@+id/bed_customer_age"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dp"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:text="--"
+            android:textSize="24sp" />
+    </LinearLayout>
 
     <TextView
         android:id="@+id/tv_bed_card_no"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="10dp"
         android:textColor="@color/black"
-        android:textSize="24sp"
+        android:textSize="20sp"
         android:text="--"/>
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginTop="12dp">
+        android:layout_marginTop="8dp">
 
         <LinearLayout
             android:layout_width="0dp"
@@ -63,19 +66,19 @@
             android:orientation="vertical">
             <ImageView
                 android:id="@+id/bed_doctor_icon"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@mipmap/ic_doctor_default"
-                android:visibility="gone"/>
+                android:layout_width="160dp"
+                android:layout_height="160dp"
+                android:scaleType="fitXY"
+                android:src="@mipmap/doctor_default" />
 
             <TextView
                 android:id="@+id/bed_doctor_title"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
+                android:layout_marginTop="6dp"
                 android:text="责任医生"
                 android:textColor="@color/black"
-                android:textSize="24sp" />
+                android:textSize="18sp" />
 
             <TextView
                 android:id="@+id/bed_doctor_name"
@@ -83,7 +86,7 @@
                 android:layout_height="wrap_content"
                 android:text="暂无"
                 android:textColor="@color/black"
-                android:textSize="28sp" />
+                android:textSize="22sp" />
         </LinearLayout>
 
         <LinearLayout
@@ -94,19 +97,19 @@
             android:orientation="vertical">
             <ImageView
                 android:id="@+id/bed_nurse_icon"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@mipmap/ic_nurse_default"
-                android:visibility="gone"/>
+                android:layout_width="160dp"
+                android:layout_height="160dp"
+                android:scaleType="fitXY"
+                android:src="@mipmap/nurse_default" />
 
             <TextView
                 android:id="@+id/bed_nurse_title"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
+                android:layout_marginTop="6dp"
                 android:text="责任护士"
                 android:textColor="@color/black"
-                android:textSize="24sp" />
+                android:textSize="18sp" />
 
             <TextView
                 android:id="@+id/bed_nurse_name"
@@ -114,7 +117,7 @@
                 android:layout_height="wrap_content"
                 android:text="暂无"
                 android:textColor="@color/black"
-                android:textSize="28sp" />
+                android:textSize="22sp" />
         </LinearLayout>
 
     </LinearLayout>

+ 3 - 3
callingdoor/src/main/res/layout/view_title_layout.xml

@@ -8,8 +8,8 @@
     <!--SIP状态图标-->
     <TextView
         android:id="@+id/view_title_layout_tv_point"
-        android:layout_width="12dp"
-        android:layout_height="12dp"
+        android:layout_width="16dp"
+        android:layout_height="16dp"
         android:layout_centerVertical="true"
         android:layout_marginLeft="20dp"
         android:background="@color/red_color"/>
@@ -20,7 +20,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerVertical="true"
-        android:layout_marginLeft="20dp"
+        android:layout_marginLeft="10dp"
         android:layout_toRightOf="@+id/view_title_layout_tv_point"
         android:text="----"
         android:textColor="@color/main_color"

BIN
callingdoor/src/main/res/mipmap-mdpi/doctor_default.jpg


BIN
callingdoor/src/main/res/mipmap-mdpi/nurse_default.jpg


+ 59 - 0
common/src/main/code/com/wdkl/ncs/android/lib/utils/DensityUtils.java

@@ -0,0 +1,59 @@
+package com.wdkl.ncs.android.lib.utils;
+
+import android.content.Context;
+import android.util.TypedValue;
+
+public class DensityUtils {
+    private DensityUtils() {
+          /* cannot be instantiated */
+        throw new UnsupportedOperationException("cannot be instantiated");
+    }
+
+    /**
+     * dp转px
+     *
+     * @param context
+     * @return
+     */
+    public static int   dp2px(Context context, float dpVal) {
+        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                dpVal, context.getResources().getDisplayMetrics());
+
+    }
+
+    /**
+     * sp转px
+     *
+     * @param context
+     * @return
+     */
+
+    public static int sp2px(Context context, float spVal) {
+        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
+                spVal, context.getResources().getDisplayMetrics());
+    }
+
+
+    /**
+     * px转dp
+     *
+     * @param context
+     * @param pxVal
+     * @return
+     */
+
+    public static float px2dp(Context context, float pxVal) {
+        final float scale = context.getResources().getDisplayMetrics().density;
+        return (pxVal / scale);
+    }
+
+
+    /**
+     * px转sp
+     *
+     * @return
+     */
+    public static float px2sp(Context context, float pxVal) {
+        return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
+    }
+}

+ 27 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/FrameBedVO.java

@@ -33,10 +33,13 @@ public class FrameBedVO {
 
     private Integer doctorId;
     private String doctorName;
+    private String doctorFace;
     private Integer nurseId;
     private String nurseName;
+    private String nurseFace;
     private Integer workerId;
     private String workerName;
+    private String workerFace;
     private String cardNo;
 
     private List<NurseConfigDto> nurseConfigDtos;
@@ -219,6 +222,30 @@ public class FrameBedVO {
         this.workerName = workerName;
     }
 
+    public String getDoctorFace() {
+        return doctorFace;
+    }
+
+    public void setDoctorFace(String doctorFace) {
+        this.doctorFace = doctorFace;
+    }
+
+    public String getNurseFace() {
+        return nurseFace;
+    }
+
+    public void setNurseFace(String nurseFace) {
+        this.nurseFace = nurseFace;
+    }
+
+    public String getWorkerFace() {
+        return workerFace;
+    }
+
+    public void setWorkerFace(String workerFace) {
+        this.workerFace = workerFace;
+    }
+
     public String getCardNo() {
         return cardNo;
     }