图片圆角、缩放等效果工具类

public class ImageUtil {

        public static InputStream getRequest(String path) throws Exception {
                URL url = new URL(path);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setConnectTimeout(5000);
                if (conn.getResponseCode() == 200){
                        return conn.getInputStream();
                }
                return null;
        }

        public static byte[] readInputStream(InputStream inStream) throws Exception {
                ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
                byte[] buffer = new byte[4096];
                int len = 0;
                while ((len = inStream.read(buffer)) != -1) {
                        outSteam.write(buffer, 0, len);
                }
                outSteam.close();
                inStream.close();
                return outSteam.toByteArray();
        }
        
        public static Drawable loadImageFromUrl(String url){
        URL m;
        InputStream i = null;
        try {
            m = new URL(url);
            i = (InputStream) m.getContent();
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Drawable d = Drawable.createFromStream(i, "src");
        return d;
    }
        
        public static Drawable getDrawableFromUrl(String url) throws Exception{
                 return Drawable.createFromStream(getRequest(url),null);
        }
        
        public static Bitmap getBitmapFromUrl(String url) throws Exception{
                byte[] bytes = getBytesFromUrl(url);
                return byteToBitmap(bytes);
        }
        
        public static Bitmap getRoundBitmapFromUrl(String url,int pixels) throws Exception{
                byte[] bytes = getBytesFromUrl(url);
                Bitmap bitmap = byteToBitmap(bytes);
                return toRoundCorner(bitmap, pixels);
        } 
        
        public static Drawable geRoundDrawableFromUrl(String url,int pixels) throws Exception{
                byte[] bytes = getBytesFromUrl(url);
                BitmapDrawable bitmapDrawable = (BitmapDrawable)byteToDrawable(bytes);
                return toRoundCorner(bitmapDrawable, pixels);
        } 
        
        public static byte[] getBytesFromUrl(String url) throws Exception{
                 return readInputStream(getRequest(url));
        }
        
        public static Bitmap byteToBitmap(byte[] byteArray){
                if(byteArray.length!=0){ 
            return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
        } 
        else { 
            return null; 
        }  
        }
        
        public static Drawable byteToDrawable(byte[] byteArray){
                ByteArrayInputStream ins = new ByteArrayInputStream(byteArray);
                return Drawable.createFromStream(ins, null);
        }
        
        public static byte[] Bitmap2Bytes(Bitmap bm){ 
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
                return baos.toByteArray();
        }
        
        public static Bitmap drawableToBitmap(Drawable drawable) {

                Bitmap bitmap = Bitmap
                                .createBitmap(
                                                drawable.getIntrinsicWidth(),
                                                drawable.getIntrinsicHeight(),
                                                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
                                                                : Bitmap.Config.RGB_565);
                Canvas canvas = new Canvas(bitmap);
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
                                drawable.getIntrinsicHeight());
                drawable.draw(canvas);
                return bitmap;
        }
        
                 /**
              * 图片去色,返回灰度图片
              * @param bmpOriginal 传入的图片
             * @return 去色后的图片
             */
            public static Bitmap toGrayscale(Bitmap bmpOriginal) {
                int width, height;
                height = bmpOriginal.getHeight();
                width = bmpOriginal.getWidth();    
        
                Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
                Canvas c = new Canvas(bmpGrayscale);
                Paint paint = new Paint();
                ColorMatrix cm = new ColorMatrix();
                cm.setSaturation(0);
                ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
                paint.setColorFilter(f);
                c.drawBitmap(bmpOriginal, 0, 0, paint);
                return bmpGrayscale;
            }
            
            
            /**
             * 去色同时加圆角
             * @param bmpOriginal 原图
             * @param pixels 圆角弧度
             * @return 修改后的图片
             */
            public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {
                return toRoundCorner(toGrayscale(bmpOriginal), pixels);
            }
            
            /**
             * 把图片变成圆角
             * @param bitmap 需要修改的图片
             * @param pixels 圆角的弧度
             * @return 圆角图片
             */
            public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
        
                Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), 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);
                final float roundPx = pixels;
        
                paint.setAntiAlias(true);
                canvas.drawARGB(0, 0, 0, 0);
                paint.setColor(color);
                canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
        
                paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
                canvas.drawBitmap(bitmap, rect, rect, paint);
        
                return output;
            }
        
            
           /**
             * 使圆角功能支持BitampDrawable
             * @param bitmapDrawable 
             * @param pixels 
             * @return
             */
            public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable, int pixels) {
                Bitmap bitmap = bitmapDrawable.getBitmap();
                bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels));
                return bitmapDrawable;
            }
        
}


时间工具
public class TimeUtil {
        
        public static String converTime(long timestamp){
                long currentSeconds = System.currentTimeMillis()/1000;
                long timeGap = currentSeconds-timestamp;//与现在时间相差秒数
                String timeStr = null;
                if(timeGap>24*60*60){//1天以上
                        timeStr = timeGap/(24*60*60)+"天前";
                }else if(timeGap>60*60){//1小时-24小时
                        timeStr = timeGap/(60*60)+"小时前";
                }else if(timeGap>60){//1分钟-59分钟
                        timeStr = timeGap/60+"分钟前";
                }else{//1秒钟-59秒钟
                        timeStr = "刚刚";
                }
                return timeStr;
        }
        
        public static String getStandardTime(long timestamp){
                SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
                Date date = new Date(timestamp*1000);
                sdf.format(date);
                return sdf.format(date);
        }
}

你可能感兴趣的:(工具类)