Browse Source

类似微信群头像功能彻底完成;剩下需要组装和优化问题;

Arisono 10 years ago
parent
commit
49dbb3c297

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/FriendDao.java

@@ -1009,7 +1009,7 @@ public class FriendDao {
 						friend.setDescription(mucRoom.getDesc());
 						friend.setRoomFlag(1);
 						friend.setRoomId(mucRoom.getId());
-						friend.setRoomCreateUserId(mucRoom.getUserId());
+						friend.setRoomCreateUserId(mucRoom.getSubject());
 						// timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
 						// friend.setTimeSend(TimeUtils.sk_time_current_time());
 						friend.setStatus(Friend.STATUS_FRIEND);

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -594,6 +594,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         }, new StringJsonArrayRequest.Listener<PublicMessage>() {
             @Override
             public void onResponse(ArrayResult<PublicMessage> result) {
+                Log.i("Arison","商务信息:"+JSON.toJSONString(result));
                 boolean success = Result.defaultParser(mContext, result, true);
                 if (success) {
                     List<PublicMessage> datas = result.getData();

+ 7 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticeMenuActivity.java

@@ -237,23 +237,17 @@ public class NoticeMenuActivity extends BaseActivity {
 
 
             if (friend.getRoomFlag() == 0) {// 这是单个人
-                if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 系统消息的头像
-                    avatar_img.setImageResource(R.drawable.im_notice);
-                } else if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友的头像
-                    avatar_img.setImageResource(R.drawable.im_new_friends);
-                }else if(friend.getUserId().equals(Friend.ID_ERP_PROCESS)){
-                    avatar_img.setImageResource(R.drawable.home_image_01);
-                } else if(friend.getUserId().equals(Friend.ID_ERP_TASK)){
-                    avatar_img.setImageResource(R.drawable.home_image_02);
-                } else if(friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)){
-                    avatar_img.setImageResource(R.drawable.home_image_03);
-                }  else if(friend.getUserId().equals(Friend.ID_ERP_NEWS)){
+                 if(friend.getUserId().equals(Friend.ID_ERP_NEWS)){
+                     avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.iconfont_bokexinwen);
                 } else if(friend.getUserId().equals(Friend.ID_ERP_NOTICE)){
-                    avatar_img.setImageResource(R.drawable.iconfont_tongzhi);
+                     avatar_img.setBackgroundResource(android.R.color.transparent);
+                     avatar_img.setImageResource(R.drawable.iconfont_tongzhi);
                 } else if(friend.getUserId().equals(Friend.ID_ERP_GONGGAO)){
-                    avatar_img.setImageResource(R.drawable.iconfont_gonggao);
+                     avatar_img.setBackgroundResource(android.R.color.transparent);
+                     avatar_img.setImageResource(R.drawable.iconfont_gonggao);
                 }else {// 其他
+                     avatar_img.setBackgroundResource(R.color.gray_light);
                     if(isRefeshed){
                         AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, true,true);//每次刷新都会去删除此人缓存
                         isRefeshed=false;

+ 6 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/SelectContactsActivity.java

@@ -406,7 +406,7 @@ public class SelectContactsActivity extends BaseActivity {
             inviteUsers.add(userId);
         }
         //开启线程处理合成群头像操作
-     final Thread uploadImageTask=
+        final Thread uploadImageTask=
              new Thread(new Runnable() {
             @Override
             public void run() {
@@ -539,6 +539,9 @@ public class SelectContactsActivity extends BaseActivity {
                 String filepath=HttpUtil.download(url, FileUtils.getSDRoot()+"/uu/chat/head"+i+".png");
                 Log.i("Arison","SelectContactsActivity:createChatImage:493:filepath:"+filepath);
                 nextBitmap= ImageUtil.compressBitmapWithFilePath(filepath,300,300);
+                if(nextBitmap==null){
+                    nextBitmap=ImageUtil.compressBitmapWithResources(this,R.drawable.avatar_normal,300,300);
+                }
                 Bitmap tempBitmap=ThumbnailUtils.extractThumbnail(nextBitmap, (int) mEntityList
                         .get(i).width, (int) mEntityList.get(i).width);
                 Log.i("Arison","createChatImage:499:tempBitmap:"+url);
@@ -562,30 +565,18 @@ public class SelectContactsActivity extends BaseActivity {
 
 
     private void uploadAvatar(File file, final String roomjId) {
-
         if (!file.exists()) {// 文件不存在
             return;
         }
-        // 显示正在上传的ProgressDialog
-        //Looper.prepare();
-//        ProgressDialogUtil.show(mProgressDialog, getString(R.string.upload_avataring));
         RequestParams params = new RequestParams();
-        final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-        long time=System.currentTimeMillis();
-//
-        long roomImgId=Long.valueOf(loginUserId)+time;
-        Log.i("Arison","SelectContactsActivity:uploadAvatar:471:roomImgId:"+roomImgId
-        +"时间:"+ DateFormatUtil.getDateTimeStr(new Date(time)));
-
-
-
+//        final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+//        long time=System.currentTimeMillis();
         params.put("userId", photoId);//群主id+当前系统时间
         try {
             params.put("file1", file);
         } catch (FileNotFoundException e) {
             e.printStackTrace();
         }
-
         AsyncHttpClient client = new AsyncHttpClient();
         client.post(MyApplication.getInstance().getConfig().AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
             @Override
@@ -602,8 +593,6 @@ public class SelectContactsActivity extends BaseActivity {
                         success = true;
                     }
                 }
-
-//                ProgressDialogUtil.dismiss(mProgressDialog);
                 if (success) {
                     Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头像成功!");
                     ToastUtil.showToast(SelectContactsActivity.this, R.string.upload_avatar_success);
@@ -613,18 +602,15 @@ public class SelectContactsActivity extends BaseActivity {
                     Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头失败!");
                     ToastUtil.showToast(SelectContactsActivity.this, R.string.upload_avatar_failed);
                 }
-
                 finish();
             }
 
             @Override
             public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
-                // ProgressDialogUtil.dismiss(mProgressDialog);
                 ToastUtil.showToast(SelectContactsActivity.this, R.string.upload_avatar_failed);
                 Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头失败!");
             }
         });
-       // Looper.loop();
     }
 
     private String photoId;
@@ -663,8 +649,6 @@ public class SelectContactsActivity extends BaseActivity {
 				}, String.class, params, true);
 		mRequest.setTag(requestTag);
 		addDefaultRequest(mRequest);
-
-
     }
 
 

+ 216 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/AddContactsActivity.java

@@ -3,8 +3,13 @@ package com.xzjmyk.pm.activity.ui.message;
 import android.app.ProgressDialog;
 import android.content.ComponentName;
 import android.content.ServiceConnection;
+import android.graphics.Bitmap;
+import android.media.ThumbnailUtils;
 import android.os.Bundle;
+import android.os.Handler;
 import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -18,13 +23,26 @@ import android.widget.ListView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
+import com.android.volley.Request;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
 import com.xzjmyk.pm.activity.bean.MucRoomSimple;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.net.HttpUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.BitmapUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.FileUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.NumberUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.PropertiesUtil;
+import com.xzjmyk.pm.activity.ui.groupchat.SelectContactsActivity;
+import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
+import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.HorizontalListView;
@@ -38,8 +56,14 @@ import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
 
+import org.apache.http.Header;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -66,6 +90,7 @@ public class AddContactsActivity extends BaseActivity {
 
 	private boolean mXmppBind;
 	private CoreService mCoreService;
+	private String photoId;
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
@@ -302,6 +327,7 @@ public class AddContactsActivity extends BaseActivity {
 
 	/**
 	 * 邀请好友
+	 * 原成员小于等于9需要重新上传图片的逻辑
 	 */
 	private void inviteFriend() {
 		if (mSelectPositions.size() <= 1) {
@@ -312,7 +338,7 @@ public class AddContactsActivity extends BaseActivity {
 		params.put("access_token", MyApplication.getInstance().mAccessToken);
 		params.put("roomId", mRoomId);
 
-		List<String> inviteUsers = new ArrayList<String>();
+	 final 	List<String> inviteUsers = new ArrayList<String>();
 		// 邀请好友
 		for (int i = 0; i < mSelectPositions.size(); i++) {
 			if (mSelectPositions.get(i) == -1) {
@@ -321,6 +347,26 @@ public class AddContactsActivity extends BaseActivity {
 			String userId = mFriendList.get(mSelectPositions.get(i)).getUserId();
 			inviteUsers.add(userId);
 		}
+
+		//开启线程处理合成群头像操作
+		final Thread uploadImageTask=
+				new Thread(new Runnable() {
+					@Override
+					public void run() {
+//						uploadIsEnd=false;//开始上传任务
+						photoId= NumberUtils.generateNumber2();//八位不重复随机数
+						/*inviteUsers.add(0, MyApplication.getInstance().mLoginUser.getUserId());*/
+						inviteUsers.addAll(0,mExistIds);
+						image=  createChatImage(inviteUsers);
+						Message msg=mhandler.obtainMessage();
+						msg.getData().putString("roomjId",mRoomJid);
+						msg.what=uploadFile;
+						mhandler.sendMessage(msg);
+					}
+				});
+
+		uploadImageTask.start();
+
 		params.put("text", JSON.toJSONString(inviteUsers));
 
 		ProgressDialogUtil.show(mProgressDialog);
@@ -335,6 +381,9 @@ public class AddContactsActivity extends BaseActivity {
 			public void onResponse(ObjectResult<Void> result) {
 				boolean parserResult = Result.defaultParser(mContext, result, true);
 				if (parserResult) {
+					while (uploadImageTask.isAlive()){	//上传线程正在运行
+						Log.i("Arison","SelectContactsActivity:onResponse:440:上传是否结束:"+uploadImageTask.isAlive());
+					}
 					inviteFriendSuccess();
 				}
 				ProgressDialogUtil.dismiss(mProgressDialog);
@@ -370,4 +419,170 @@ public class AddContactsActivity extends BaseActivity {
 		finish();
 	}
 
+
+
+
+	/**
+	 * @功能:合成九宫图头像--耗时操作
+	 * @author:Arisono
+	 * @param:
+	 * @return:
+	 */
+	private File createChatImage(List<String> inviteUsers){
+		Log.i("Arison", "SelectContactsActivity:createChatImage:473:开始合成图片:" + DateFormatUtil.getFormatDate(System.currentTimeMillis()));
+		File file=null;
+		if (!ListUtils.isEmpty(inviteUsers)){
+			int size=inviteUsers.size()>9?9:inviteUsers.size();
+			List<SelectContactsActivity.MyBitmapEntity> mEntityList = getBitmapEntitys(size);
+			Bitmap mBitmaps[]=new Bitmap[size];
+			for (int i=0;i<size;i++){
+				String url=AvatarHelper.getAvatarUrl(inviteUsers.get(i), false);
+				Bitmap nextBitmap=null;
+				String filepath= HttpUtil.download(url, FileUtils.getSDRoot() + "/uu/chat/head" + i + ".png");
+				Log.i("Arison","SelectContactsActivity:createChatImage:493:filepath:"+filepath);
+				nextBitmap= ImageUtil.compressBitmapWithFilePath(filepath, 300, 300);
+				if(nextBitmap==null){
+					nextBitmap=ImageUtil.compressBitmapWithResources(this,R.drawable.avatar_normal,300,300);
+				}
+				Bitmap tempBitmap= ThumbnailUtils.extractThumbnail(nextBitmap, (int) mEntityList
+						.get(i).width, (int) mEntityList.get(i).width);
+				Log.i("Arison","createChatImage:499:tempBitmap:"+url);
+				Log.i("Arison","createChatImage:499:tempBitmap:"+nextBitmap);
+				mBitmaps[i]=tempBitmap;
+			}
+			Bitmap combineBitmap = BitmapUtil.getCombineBitmaps(mEntityList, mBitmaps);
+			try {
+				file=  BitmapUtil.saveFile(combineBitmap,"chatImage.png");
+			} catch (IOException e) {
+				e.printStackTrace();
+			} catch (Exception e){
+				e.printStackTrace();
+			}
+		}
+		Log.i("Arison", "SelectContactsActivity:createChatImage:473:合成图片结束:" + DateFormatUtil.getFormatDate(System.currentTimeMillis()) + ";file=" + file);
+		return  file;
+	}
+
+	private void uploadAvatar(File file, final String roomjId) {
+		if (!file.exists()) {// 文件不存在
+			return;
+		}
+		RequestParams params = new RequestParams();
+//        final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+//        long time=System.currentTimeMillis();
+		params.put("userId", photoId);//群主id+当前系统时间
+		try {
+			params.put("file1", file);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		AsyncHttpClient client = new AsyncHttpClient();
+		client.post(MyApplication.getInstance().getConfig().AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
+			@Override
+			public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
+				boolean success = false;
+				if (arg0 == 200) {
+					Result result = null;
+					try {
+						result = JSON.parseObject(new String(arg2), Result.class);
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+					if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
+						success = true;
+					}
+				}
+				if (success) {
+					Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头像成功!");
+					ToastUtil.showToast(AddContactsActivity.this, R.string.upload_avatar_success);
+					//更新服务器
+					updateIMChatImageId(roomjId, photoId);
+				} else {
+					Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头失败!");
+					ToastUtil.showToast(AddContactsActivity.this, R.string.upload_avatar_failed);
+				}
+				finish();
+			}
+
+			@Override
+			public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
+				ToastUtil.showToast(AddContactsActivity.this, R.string.upload_avatar_failed);
+				Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头失败!");
+			}
+		});
+	}
+
+	/**
+	 * @功能:上传文件后,需要上传更新图像id
+	 * @author:Arisono
+	 * @param:
+	 * @return:
+	 */
+	public void updateIMChatImageId(String roomjId,String photoId){
+//        this.uploadIsEnd=true;
+		String url = MyApplication.getInstance().getConfig().apiUrl+"room/setRelationGroupPhoto";
+		final String requestTag = "loginManagerSystem";
+		Map<String, String> params = new HashMap<String, String>();
+		params.put("access_token", MyApplication.getInstance().mAccessToken);
+		params.put("roomId", roomjId);
+		params.put("photoid",photoId);
+//		final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait), true);
+//		ProgressDialogUtil.show(dialog);
+		StringJsonObjectRequest<String> mRequest = new StringJsonObjectRequest<String>(
+				Request.Method.GET, url,
+				new Response.ErrorListener() {
+					@Override
+					public void onErrorResponse(VolleyError volleyError) {
+//						ProgressDialogUtil.dismiss(dialog);
+//						ToastUtil.showErrorNet(mContext);
+					}
+				},
+				new StringJsonObjectRequest.Listener<String>() {
+					@Override
+					public void onResponse(ObjectResult<String> result) {
+						Log.i("Arison","更新头像id result:"+ result.getResultData());
+					}
+				}, String.class, params, true);
+		mRequest.setTag(requestTag);
+		addDefaultRequest(mRequest);
+	}
+
+
+	private List<SelectContactsActivity.MyBitmapEntity> getBitmapEntitys(int count) {
+		List<SelectContactsActivity.MyBitmapEntity> mList = new LinkedList<SelectContactsActivity.MyBitmapEntity>();
+		String value = PropertiesUtil.readData(this, String.valueOf(count),
+				R.raw.data);
+		String[] arr1 = value.split(";");
+		int length = arr1.length;
+		for (int i = 0; i < length; i++) {
+			String content = arr1[i];
+			String[] arr2 = content.split(",");
+			SelectContactsActivity.MyBitmapEntity entity = null;
+			for (int j = 0; j < arr2.length; j++) {
+				entity = new SelectContactsActivity.MyBitmapEntity();
+				entity.x = Float.valueOf(arr2[0]);
+				entity.y = Float.valueOf(arr2[1]);
+				entity.width = Float.valueOf(arr2[2]);
+				entity.height = Float.valueOf(arr2[3]);
+			}
+			mList.add(entity);
+		}
+		return mList;
+	}
+
+	private final int uploadFile=1;
+	private File image;
+	private Handler mhandler=new Handler(){
+		@Override
+		public void handleMessage(Message msg) {
+			switch (msg.what){
+				case uploadFile:
+					String roomjId=msg.getData().getString("roomjId");
+					Log.i("Arison","SelectContactsActivity:handleMessage:466:handler uploadFile="+uploadFile);
+					uploadAvatar(image,roomjId);
+					break;
+			}
+
+		}
+	};
 }

+ 14 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -154,7 +154,7 @@ public class MessageFragment extends EasyFragment {
     @Override
     public void onResume() {
         super.onResume();
-        if (mNeedUpdate) {
+            if (mNeedUpdate) {
             mNeedUpdate = false;
             loadData();
             Log.i("MessageFragment", "加载流程数据...........................");
@@ -276,6 +276,8 @@ public class MessageFragment extends EasyFragment {
         isRefeshed = true;
         HashMap<String, String> params = new HashMap<String, String>();
         params.put("access_token", MyApplication.getInstance().mAccessToken);
+        Log.i("Arison", "MessageFragment:upDataFriend:279:" + MyApplication.getInstance().mAccessToken);
+        Log.i("Arison","MessageFragment:upDataFriend:280:"+ MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
         StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
                 MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new ErrorListener() {
             @Override
@@ -502,21 +504,30 @@ public class MessageFragment extends EasyFragment {
             if (friend.getRoomFlag() == 0) {// 这是单个人
                 if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 系统消息的头像
                     avatar_img.setImageResource(R.drawable.system_img);
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                 } else if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友的头像
                     avatar_img.setImageResource(R.drawable.friend_u);
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                 } else if (friend.getUserId().equals(Friend.ID_ERP_PROCESS)) { //待办
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.home_image_01_u);
                 } else if (friend.getUserId().equals(Friend.ID_ERP_TASK)) {  //我的任务
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.home_image_02_u);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)) {
+                } else if (friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)) {//
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.home_image_03_u);
                 } else if (friend.getUserId().equals(Friend.ID_ERP_NEWS)) {
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.iconfont_bokexinwen);
                 } else if (friend.getUserId().equals(Friend.ID_ERP_NOTICE)) {
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.iconfont_tongzhi);
                 } else if (friend.getUserId().equals(Friend.ID_ERP_GONGGAO)) {
+                    avatar_img.setBackgroundResource(android.R.color.transparent);
                     avatar_img.setImageResource(R.drawable.iconfont_gonggao);
                 } else {// 其他
+                    avatar_img.setBackgroundResource(R.color.gray_light);
                     if (isRefeshed) {
                         AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, false, true);//每次刷新都会去删除此人缓存
                         isRefeshed = false;
@@ -526,6 +537,7 @@ public class MessageFragment extends EasyFragment {
                     }
                 }
             } else {// 这是1个房间
+                avatar_img.setBackgroundResource(R.color.gray_light);
                 if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
                     //					avatar_img.setImageResource(R.drawable.avatar_normal);
                     avatar_img.setImageResource(R.drawable.qunliao);

+ 15 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.util;
 
+import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Matrix;
@@ -254,6 +255,20 @@ public class ImageUtil {
         return BitmapFactory.decodeFile(filePath, options);
     }
 
+    /**
+     * @功能:压缩指定RES图片,并得到压缩后的图像
+     * @author:Arisono
+     * @param:filePath:图片路径
+     * @return: Bitmap
+     */
+    public static Bitmap compressBitmapWithResources(Context ct,int resId,int reqsW, int reqsH) {
+        final BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inJustDecodeBounds = true;
+        BitmapFactory.decodeResource(ct.getResources(),resId,options);
+        options.inSampleSize =   calculateInSampleSize(options, reqsW, reqsH);
+        options.inJustDecodeBounds = false;
+        return BitmapFactory.decodeResource(ct.getResources(), resId, options);
+    }
 
 
     public static Bitmap bytes2Bimap(byte[] b) {