当前位置: 代码迷 >> Android >> Android腾讯菲薄单薄客户端开发七:图片加圆角以及时间处理工具类
  详细解决方案

Android腾讯菲薄单薄客户端开发七:图片加圆角以及时间处理工具类

热度:94   发布时间:2016-05-01 18:39:57.0
Android腾讯微薄客户端开发七:图片加圆角以及时间处理工具类
给图片加上圆角效果好看多了。



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);	}}
1 楼 hh777 2011-08-19  
LZ 开源代码里有没有发图片的功能啊,还有修改头像
2 楼 helloandroid 2011-08-19  
hh777 写道
LZ 开源代码里有没有发图片的功能啊,还有修改头像

可以发图片(要加一个jar包),修改头像好像没没发现改头像的API
3 楼 xcstone 2011-11-01  
zuzhoumeiy??!!
  相关解决方案