好记性不如烂笔头(零)
2015-03-03 15:25
330 查看
俗话说,好记性不如烂笔头!
在平常的开发工作中,很多时候我们都会用到一些代码量比较小,但是却很有用的功能,但是,都只是写过就算,下一次再想起来用的时候,已经不知道该去哪儿找了。
常常因为这些小点而浪费时间,也随着年纪渐长,智商有限,还是靠记下来,以备不时之需呀。
获取圆形图片
获取系统方向(旋转)是否锁定
遇到这种与系统设置相关的配置信息时,我们应该先去Settings等系统类中去找一下,然后有针对性地利用关键字进行搜索,效果会好很多。
从URI中获取图片的地址
根据图片路径读取图片的旋转角度
在平常的开发工作中,很多时候我们都会用到一些代码量比较小,但是却很有用的功能,但是,都只是写过就算,下一次再想起来用的时候,已经不知道该去哪儿找了。
常常因为这些小点而浪费时间,也随着年纪渐长,智商有限,还是靠记下来,以备不时之需呀。
获取圆形图片
/** * bitmap 要进行剪裁的位图 * size 剪裁的圆形图片的大小 */ public static Bitmap getCroppedRoundBitmap(Bitmap bitmap, int size) { if (bitmap == null || bitmap.isRecycled() || size < 0) { return null; } Bitmap result = Bitmap.createBitmap(size, size, Config.ARGB_8888); Canvas canvas = new Canvas(result); /* 一般圆是内切于一个正方形的,所以我们要从这张bitmap中找出一个最大的正方形的位置,以长或者宽的长度为正方形的边(哪个短取哪个)*/ int bmpWidth = bitmap.getWidth(); int bmpHeight = bitmap.getHeight(); int x = 0, y = 0; if (bmpHeight > bmpWidth) { x = 0; y = (bmpHeight - bmpWidth) / 2; } else if (bmpHeight < bmpWidth) { x = (bmpWidth - bmpHeight) / 2; y = 0; } Paint paint = new Paint(); /*srcRect 是我们要剪截的原图中的某块区域,可以为空,则从0,0,即图的左上角开始,而x,y,则是根据上面代码找出来的点*/ Rect srcRect = new Rect(x, y, bmpWidth, bmpHeight); /*dstRect 是目标正方形的大小*/ Rect dstRect = new Rect(0, 0, size, size); //对于paint的设置是为了要防止出现锯齿,但这种设置,对于如果利用clipPath来画的图像是不起作用的。 paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setDither(true); canvas.drawARGB(0, 0, 0, 0); canvas.drawCircle(size / 2, size / 2, size / 2, paint); /*利用Xfermode的SRC_IN,则只绘制原图bitmap在圆圈中的区域,从而获取圆形切图*/ paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, srcRect, dstRect, paint); return result; }
获取系统方向(旋转)是否锁定
private static final int DEFAULT_ACCELEROMETER_ROTATION = -1; int lock = Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, DEFAULT_ACCELEROMETER_ROTATION); if (lock == 1) { mTvOrientationLock.setText("Unlocked"); } else { // rotation is Locked mTvOrientationLock.setText("Locked"); }
遇到这种与系统设置相关的配置信息时,我们应该先去Settings等系统类中去找一下,然后有针对性地利用关键字进行搜索,效果会好很多。
从URI中获取图片的地址
private static String getRealPathFromURI(Context context, Uri contentURI) { String result = ""; Cursor cursor = context.getContentResolver().query(contentURI, null, null, null, null); if (cursor == null) { result = contentURI.getPath(); } else { if (cursor.moveToFirst()) { int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); result = cursor.getString(idx); } cursor.close(); } return result; }
根据图片路径读取图片的旋转角度
private static int readPictureDegree(String path) { int degree = 0; try { ExifInterface exifInterface = new ExifInterface(path); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degree = 270; break; } } catch (IOException e) { e.printStackTrace(); } return degree; }
相关文章推荐
- 好记性不如烂笔头
- 好记性不如烂笔头-.bash_profile配置hadoop,hive,hbase环境变量
- C#转义字符(好记性不如烂笔头)
- 好记性不如烂笔头8-JAVA读取EXCEL文件
- 好记性不如烂笔头26-JAVA处理文件事务(4)
- 好记性不如烂笔头42-javaWeb监听对象域属性变化(6)
- 好记性不如烂笔头61-XML文档结构和属性说明
- 好记性不如烂笔头89-spring3学习(10)-spring3常用schema(持续整理)
- 好记性不如烂笔头系列:编译ko模块相关
- 进来在看《How Tomcat Works》这本书,将读书笔记贴在这里,好记性不如烂笔头。
- 好记性不如烂笔头77-多线程-Thread子类的线程对象是不同的
- 2017-8-25 好记性不如烂笔头之axis之WSDL
- 好记性不如烂笔头---hadoop配置调优
- 好记性不如个破笔头之--GAC
- GetLastError() / errno - 好记性不如烂笔头
- 好记性不如烂笔头,关于hibernate异常
- 好记性不如烂笔头-手动编译jar包<转>
- 好记性不如烂笔头11-WEB应用的HttpServletResponse
- 好记性不如烂笔头27-分布式文件系统的事务控制(5)
- 好记性不如烂笔头43-javaWeb中Session相关事件监听器(7)