Kaynağa Gözat

修复本地头像-----》l流程单据详细显示头像

Arison 9 yıl önce
ebeveyn
işleme
b2f31c8abd

+ 15 - 20
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/CommonDocApprovalFlowAdapter.java

@@ -1,11 +1,7 @@
 package com.xzjmyk.pm.activity.adapter;
 
-import android.content.ContentResolver;
 import android.content.Context;
-import android.content.res.Resources;
-import android.net.Uri;
 import android.support.v7.app.AlertDialog;
-import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
@@ -13,12 +9,9 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.nostra13.universalimageloader.core.ImageLoader;
-import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.CommonApprovalFlowBean;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
-import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 
 import java.util.List;
 
@@ -31,7 +24,7 @@ import java.util.List;
 public class CommonDocApprovalFlowAdapter extends BaseAdapter {
     private CommonApprovalFlowBean mCommonApprovalFlowBean;
     private Context mContext;
-    DBManager manager;
+    //DBManager manager;
     private List<String> im_ids;
 
     public List<String> getIm_ids() {
@@ -43,10 +36,8 @@ public class CommonDocApprovalFlowAdapter extends BaseAdapter {
     }
 
     public CommonDocApprovalFlowAdapter(Context mContext) {
-        manager = new DBManager(mContext);
+        //manager = new DBManager(mContext);
         this.mContext = mContext;
-
-
     }
 
     public CommonApprovalFlowBean getmCommonApprovalFlowBean() {
@@ -97,15 +88,19 @@ public class CommonDocApprovalFlowAdapter extends BaseAdapter {
         int datanum = mCommonApprovalFlowBean.getData().size();
         int processnum = mCommonApprovalFlowBean.getProcesss().size();
         viewHolder.AppFlowName.setText(mCommonApprovalFlowBean.getData().get(getCount() - position - 1).getJP_NODEDEALMANNAME());
-        if (im_ids != null && im_ids.get(getCount() - position - 1).equals("")) {
-
-            Resources r = mContext.getResources();
-            String url = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
-                    + r.getResourcePackageName(R.drawable.common_header_boy) + "://"
-                    + r.getResourceTypeName(R.drawable.common_header_boy) + "://"
-                    + r.getResourceEntryName(R.drawable.common_header_boy)).toString();
-            ImageLoader.getInstance().displayImage(url, viewHolder.AppFlowPhoto, MyApplication.mAvatarRoundImageOptions);
-            Log.i("imurl", url);
+        if (im_ids == null || im_ids.get(getCount() - position - 1).equals("")) {
+           // viewHolder.AppFlowPhoto.setImageDrawable(new BitmapDrawable());
+         String imageUri = "drawable://" + R.drawable.common_header_boy;
+//            viewHolder.AppFlowPhoto.setImageBitmap(ImageUtil.getRoundedCornerBitmapResId(mContext,
+//                    R.drawable.common_header_boy,10.0f));
+//            Resources r = mContext.getResources();
+//            String url = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+//                    + r.getResourcePackageName(R.drawable.common_header_boy) + "://"
+//                    + r.getResourceTypeName(R.drawable.common_header_boy) + "://"
+//                    + r.getResourceEntryName(R.drawable.common_header_boy)).toString();
+//            ImageLoader.getInstance().displayImage(url, viewHolder.AppFlowPhoto, MyApplication.mAvatarRoundImageOptions);
+//            Log.i("imurl", url);
+            AvatarHelper.getInstance().display(imageUri,viewHolder.AppFlowPhoto,true);
 
         } else {
 //            ImageLoader.getInstance().displayImage(url, viewHolder.AppFlowPhoto, MyApplication.mAvatarRoundImageOptions);

+ 3 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/AvatarHelper.java

@@ -247,40 +247,11 @@ public class AvatarHelper {
         return 0;
     }
 
-    private void display(final String url, ImageView imageView, boolean isThumb) {
-
+    public void display(final String url, ImageView imageView, boolean isThumb) {
         if (isThumb) {
-            ImageLoader.getInstance().displayImage(url, imageView, MyApplication.mAvatarRoundImageOptions
-                 );
-
+            ImageLoader.getInstance().displayImage(url, imageView, MyApplication.mAvatarRoundImageOptions);
         } else {
-            ImageLoader.getInstance().displayImage(url, imageView, MyApplication.mAvatarNormalImageOptions
-              /*      ,
-                    new ImageLoadingListener() {
-                        @Override
-                        public void onLoadingStarted(String s, View view) {
-
-                        }
-
-                        @Override
-                        public void onLoadingFailed(String s, View view, FailReason failReason) {
-
-                        }
-
-                        @Override
-                        public void onLoadingComplete(String s, View view, Bitmap bitmap) {
-                            ImageView iv=(ImageView)view;
-                            String tag=(String)iv.getTag();
-                            if(ObjectUtils.isEquals(url,tag)){
-                                iv.setImageBitmap(bitmap);
-                            }
-                        }
-
-                        @Override
-                        public void onLoadingCancelled(String s, View view) {
-
-                        }
-                    }*/);
+            ImageLoader.getInstance().displayImage(url, imageView, MyApplication.mAvatarNormalImageOptions);
         }
     }
 

+ 12 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonDocDetailsActivity.java

@@ -29,6 +29,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.MyListView;
 
@@ -135,6 +136,9 @@ public class CommonDocDetailsActivity extends BaseActivity {
         manager = new DBManager(this);
         im_ids =new ArrayList<>();
 
+        String imageUri = "drawable://" + R.drawable.common_header_boy;
+        AvatarHelper.getInstance().display(imageUri, photo_im, true);
+
     }
 
     private void initDate() {
@@ -391,6 +395,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 String selection = "em_code=? and whichsys=? ";
                 //获取数据库数据
                 EmployeesEntity bean = manager.selectForEmployee(selectionArgs, selection);
+              
                 if (bean != null) {
                     String imId = String.valueOf(bean.getEm_IMID());
                     String imName = String.valueOf(bean.getEM_NAME());
@@ -398,11 +403,17 @@ public class CommonDocDetailsActivity extends BaseActivity {
                     String imPosition = String.valueOf(bean.getEM_POSITION());
 
                     name_tv.setText(imName);
-                    AvatarHelper.getInstance().display(imId, photo_im, true, false);  //显示圆角图片
+                    if (!StringUtils.isEmpty(imId)) {
+                        AvatarHelper.getInstance().display(imId, photo_im, true, false);
+                    }//显示圆角图片
                     section_tv.setText(imDepartment + ">" + imPosition);
 
                     Log.i("todo", "imId=" + imId + "imName" + imName + "imDepartment" + imDepartment + "imPosition" + imPosition);
                 }else {
+                   
+//                    photo_im.setImageBitmap(ImageUtil.getRoundedCornerBitmapResId(mContext,
+//                            R.drawable.common_header_boy, 10.0f));
+                  
                     ToastMessage("单据申请人数据获取异常");
                 }
             }

+ 64 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -6,8 +6,14 @@ import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.PixelFormat;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
+import android.graphics.RectF;
 import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
 import android.media.ExifInterface;
 import android.text.Layout;
 import android.text.StaticLayout;
@@ -337,9 +343,9 @@ public class ImageUtil {
     }
 
     /**
-     * @功能:压缩指定RES图片,并得到压缩后的图像
+     * @功能:从资源清单中获取Bitmap
      * @author:Arisono
-     * @param:filePath:图片路径
+     * @param:resId:资源id
      * @return: Bitmap
      */
     public static Bitmap compressBitmapWithResources(Context ct, int resId, int reqsW, int reqsH) {
@@ -352,6 +358,62 @@ public class ImageUtil {
     }
 
 
+    /**
+     * Drawable to Bitmap
+     * @param drawable
+     * @return Bitmap
+     */
+    public static Bitmap drawableToBitmap(Drawable drawable){
+        int width = drawable.getIntrinsicWidth();
+        int height = drawable.getIntrinsicHeight();
+        Bitmap bitmap = Bitmap.createBitmap(width, height,
+                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
+                        : Bitmap.Config.RGB_565);
+        Canvas canvas = new Canvas(bitmap);
+        drawable.setBounds(0,0,width,height);
+        drawable.draw(canvas);
+        return bitmap;
+
+    }
+
+    /** 
+     * 获取圆角图片
+     * @param bitmap
+     * @param roundPx
+     * @return
+     */
+    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){
+        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
+                .getHeight(), Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(output);
+
+        final int color = 0xff424242;
+        final Paint paint = new Paint();
+        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
+        final RectF rectF = new RectF(rect);
+
+        paint.setAntiAlias(true);
+        canvas.drawARGB(0, 0, 0, 0);
+        paint.setColor(color);
+        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
+
+        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
+        canvas.drawBitmap(bitmap, rect, rect, paint);
+
+        return output;
+    }
+
+    /** resId 获取圆角头像
+     * @param ct
+     * @param resId
+     * @param roundPx
+     * @return
+     */
+    public static Bitmap getRoundedCornerBitmapResId(Context ct,int  resId,float roundPx){
+        Bitmap mBitmaps= compressBitmapWithResources(ct,resId,0,0);
+        return  getRoundedCornerBitmap(mBitmaps,roundPx);
+    }
+    
     public static Bitmap bytes2Bimap(byte[] b) {
         if (b.length != 0) {
             return BitmapFactory.decodeByteArray(b, 0, b.length);
@@ -363,7 +425,6 @@ public class ImageUtil {
 
     /**
      * 字节数组转换成bitmap
-     *
      * @param bytes
      * @return
      */

+ 1 - 1
WeiChat/src/main/res/layout/activity_common_docui.xml

@@ -31,7 +31,7 @@
                 android:id="@+id/common_docui_photo_img"
                 android:layout_width="45dp"
                 android:layout_height="45dp"
-                android:src="@drawable/common_header_boy"
+               
                 android:contentDescription="@string/app_name"
                 android:layout_marginTop="5dp"
                 android:layout_marginBottom="5dp" />

+ 1 - 1
WeiChat/src/main/res/layout/item_common_doc_approval_flow.xml

@@ -27,7 +27,7 @@
         android:id="@+id/item_dcommon_doc_approval_flow_photo_img"
         android:layout_width="40dp"
         android:layout_height="40dp"
-        android:src="@drawable/common_header_boy"
+    
         android:contentDescription="@string/app_name"
         android:layout_marginLeft="15dp"
         android:layout_toRightOf="@id/node_ll"