zoukankan      html  css  js  c++  java
  • Android腾讯微薄客户端开发七:图片加圆角以及时间处理工具类

    给图片加上圆角效果好看多了。 
     


    Java代码  收藏代码
    1. public class ImageUtil {  
    2.   
    3.     public static InputStream getRequest(String path) throws Exception {  
    4.         URL url = new URL(path);  
    5.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
    6.         conn.setRequestMethod("GET");  
    7.         conn.setConnectTimeout(5000);  
    8.         if (conn.getResponseCode() == 200){  
    9.             return conn.getInputStream();  
    10.         }  
    11.         return null;  
    12.     }  
    13.   
    14.     public static byte[] readInputStream(InputStream inStream) throws Exception {  
    15.         ByteArrayOutputStream outSteam = new ByteArrayOutputStream();  
    16.         byte[] buffer = new byte[4096];  
    17.         int len = 0;  
    18.         while ((len = inStream.read(buffer)) != -1) {  
    19.             outSteam.write(buffer, 0, len);  
    20.         }  
    21.         outSteam.close();  
    22.         inStream.close();  
    23.         return outSteam.toByteArray();  
    24.     }  
    25.       
    26.     public static Drawable loadImageFromUrl(String url){  
    27.         URL m;  
    28.         InputStream i = null;  
    29.         try {  
    30.             m = new URL(url);  
    31.             i = (InputStream) m.getContent();  
    32.         } catch (MalformedURLException e1) {  
    33.             e1.printStackTrace();  
    34.         } catch (IOException e) {  
    35.             e.printStackTrace();  
    36.         }  
    37.         Drawable d = Drawable.createFromStream(i, "src");  
    38.         return d;  
    39.     }  
    40.       
    41.     public static Drawable getDrawableFromUrl(String url) throws Exception{  
    42.          return Drawable.createFromStream(getRequest(url),null);  
    43.     }  
    44.       
    45.     public static Bitmap getBitmapFromUrl(String url) throws Exception{  
    46.         byte[] bytes = getBytesFromUrl(url);  
    47.         return byteToBitmap(bytes);  
    48.     }  
    49.       
    50.     public static Bitmap getRoundBitmapFromUrl(String url,int pixels) throws Exception{  
    51.         byte[] bytes = getBytesFromUrl(url);  
    52.         Bitmap bitmap = byteToBitmap(bytes);  
    53.         return toRoundCorner(bitmap, pixels);  
    54.     }   
    55.       
    56.     public static Drawable geRoundDrawableFromUrl(String url,int pixels) throws Exception{  
    57.         byte[] bytes = getBytesFromUrl(url);  
    58.         BitmapDrawable bitmapDrawable = (BitmapDrawable)byteToDrawable(bytes);  
    59.         return toRoundCorner(bitmapDrawable, pixels);  
    60.     }   
    61.       
    62.     public static byte[] getBytesFromUrl(String url) throws Exception{  
    63.          return readInputStream(getRequest(url));  
    64.     }  
    65.       
    66.     public static Bitmap byteToBitmap(byte[] byteArray){  
    67.         if(byteArray.length!=0){   
    68.             return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);   
    69.         }   
    70.         else {   
    71.             return null;   
    72.         }    
    73.     }  
    74.       
    75.     public static Drawable byteToDrawable(byte[] byteArray){  
    76.         ByteArrayInputStream ins = new ByteArrayInputStream(byteArray);  
    77.         return Drawable.createFromStream(ins, null);  
    78.     }  
    79.       
    80.     public static byte[] Bitmap2Bytes(Bitmap bm){   
    81.         ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    82.         bm.compress(Bitmap.CompressFormat.PNG, 100, baos);  
    83.         return baos.toByteArray();  
    84.     }  
    85.       
    86.     public static Bitmap drawableToBitmap(Drawable drawable) {  
    87.   
    88.         Bitmap bitmap = Bitmap  
    89.                 .createBitmap(  
    90.                         drawable.getIntrinsicWidth(),  
    91.                         drawable.getIntrinsicHeight(),  
    92.                         drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
    93.                                 : Bitmap.Config.RGB_565);  
    94.         Canvas canvas = new Canvas(bitmap);  
    95.         drawable.setBounds(00, drawable.getIntrinsicWidth(),  
    96.                 drawable.getIntrinsicHeight());  
    97.         drawable.draw(canvas);  
    98.         return bitmap;  
    99.     }  
    100.       
    101.         /** 
    102.           * 图片去色,返回灰度图片 
    103.           * @param bmpOriginal 传入的图片 
    104.          * @return 去色后的图片 
    105.          */  
    106.         public static Bitmap toGrayscale(Bitmap bmpOriginal) {  
    107.             int width, height;  
    108.             height = bmpOriginal.getHeight();  
    109.             width = bmpOriginal.getWidth();      
    110.       
    111.             Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);  
    112.             Canvas c = new Canvas(bmpGrayscale);  
    113.             Paint paint = new Paint();  
    114.             ColorMatrix cm = new ColorMatrix();  
    115.             cm.setSaturation(0);  
    116.             ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);  
    117.             paint.setColorFilter(f);  
    118.             c.drawBitmap(bmpOriginal, 00, paint);  
    119.             return bmpGrayscale;  
    120.         }  
    121.           
    122.           
    123.         /** 
    124.          * 去色同时加圆角 
    125.          * @param bmpOriginal 原图 
    126.          * @param pixels 圆角弧度 
    127.          * @return 修改后的图片 
    128.          */  
    129.         public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {  
    130.             return toRoundCorner(toGrayscale(bmpOriginal), pixels);  
    131.         }  
    132.           
    133.         /** 
    134.          * 把图片变成圆角 
    135.          * @param bitmap 需要修改的图片 
    136.          * @param pixels 圆角的弧度 
    137.          * @return 圆角图片 
    138.          */  
    139.         public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {  
    140.       
    141.             Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);  
    142.             Canvas canvas = new Canvas(output);  
    143.       
    144.             final int color = 0xff424242;  
    145.             final Paint paint = new Paint();  
    146.             final Rect rect = new Rect(00, bitmap.getWidth(), bitmap.getHeight());  
    147.             final RectF rectF = new RectF(rect);  
    148.             final float roundPx = pixels;  
    149.       
    150.             paint.setAntiAlias(true);  
    151.             canvas.drawARGB(0000);  
    152.             paint.setColor(color);  
    153.             canvas.drawRoundRect(rectF, roundPx, roundPx, paint);  
    154.       
    155.             paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
    156.             canvas.drawBitmap(bitmap, rect, rect, paint);  
    157.       
    158.             return output;  
    159.         }  
    160.       
    161.           
    162.        /** 
    163.          * 使圆角功能支持BitampDrawable 
    164.          * @param bitmapDrawable  
    165.          * @param pixels  
    166.          * @return 
    167.          */  
    168.         public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable, int pixels) {  
    169.             Bitmap bitmap = bitmapDrawable.getBitmap();  
    170.             bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels));  
    171.             return bitmapDrawable;  
    172.         }  
    173.       
    174. }  


    Java代码  收藏代码
    1. public class TimeUtil {  
    2.       
    3.     public static String converTime(long timestamp){  
    4.         long currentSeconds = System.currentTimeMillis()/1000;  
    5.         long timeGap = currentSeconds-timestamp;//与现在时间相差秒数  
    6.         String timeStr = null;  
    7.         if(timeGap>24*60*60){//1天以上  
    8.             timeStr = timeGap/(24*60*60)+"天前";  
    9.         }else if(timeGap>60*60){//1小时-24小时  
    10.             timeStr = timeGap/(60*60)+"小时前";  
    11.         }else if(timeGap>60){//1分钟-59分钟  
    12.             timeStr = timeGap/60+"分钟前";  
    13.         }else{//1秒钟-59秒钟  
    14.             timeStr = "刚刚";  
    15.         }  
    16.         return timeStr;  
    17.     }  
    18.       
    19.     public static String getStandardTime(long timestamp){  
    20.         SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");  
    21.         Date date = new Date(timestamp*1000);  
    22.         sdf.format(date);  
    23.         return sdf.format(date);  
    24.     }  
    25. }  
  • 相关阅读:
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 实现业务
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 开发流程
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 报表系统集成说明
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 处理报表
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 数据访问
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 分布式应用
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 实现插件
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 对象设计器使用帮助
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 数据层开发
    Jquery 中的CheckBox、 RadioButton、 DropDownList、CheckBoxList、RadioButtonList的取值赋值
  • 原文地址:https://www.cnblogs.com/afly/p/2360242.html
Copyright © 2011-2022 走看看