资源描述:
《android实现对图片的缩放、剪切、旋转、存储(烟台杰瑞教育android培训部原创)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、烟台杰瑞教育科技有限公司(Android开发培训部)版权所有Android实现对图片的缩放、剪切、旋转、存储一、问题描述 在开发中,当我们需要的有一张大图片同时还需要一些小图片时,我们只需要通过代码对此图片进行不同比例的缩放即可,这样大大节约资源,减小了安装包的尺寸。除缩放外,我们还经常对图片进行其他操作如裁剪、旋转、存储等。 这样我们可以编写对于图片进行处理的通用组件,方便开发。下面就分享一下对图片进行处理的组件BitmapUtil,案例界面:二、技术点描述 1、通过BitmapFactory取得BitmapBitmapbm
2、=BitmapFactory.decodeStream(InputStreamis); 2、Bimap的createBitmap()方法Bitmapnewbm=Bitmap.createBitmap(Bitmaps,intx,inty,intw,inth,Matrixm,booleanf); 该方法可实现位图的缩放、裁剪、旋转操作------杰瑞教育(www.jerehedu.com)专注IT技能培训打造一流人才服务平台------烟台杰瑞教育科技有限公司(Android开发培训部)版权所有 参数说明:Bitmaps:要处理的
3、原始位图intx,y:起始位置坐标intw:要截的图的宽度inth:要截的图的宽度Matrixm矩阵,主要是用于平面的缩放、平移、旋转booleanf:是否保证等比返回值:返回处理后的Bitmap三、BitmapUtil组件可实现对图片进行按比例缩放、图片按比例裁剪、圆形图片处理等方法,实现功能如下:1、readBitmapById()方法/***通过资源id转化成Bitmap*@paramcontext*@paramresId*@return*/publicstaticBitmapreadBitmapById(Contextcon
4、text,intresId){BitmapFactory.Optionsopt=newBitmapFactory.Options();opt.inPreferredConfig=Bitmap.Config.RGB_565;opt.inPurgeable=true;opt.inInputShareable=true;InputStreamis=context.getResources().openRawResource(resId);returnBitmapFactory.decodeStream(is,null,opt);}----
5、--杰瑞教育(www.jerehedu.com)专注IT技能培训打造一流人才服务平台------烟台杰瑞教育科技有限公司(Android开发培训部)版权所有2、scaleImage()方法,实现按指定宽高缩放图片 执行效果如图:/***缩放图片*@parambm要缩放图片*@paramnewWidth宽度*@paramnewHeight高度*@return处理后的图片*/publicstaticBitmapscaleImage(Bitmapbm,intnewWidth,intnewHeight){if(bm==null){retu
6、rnnull;}intwidth=bm.getWidth();intheight=bm.getHeight();floatscaleWidth=((float)newWidth)/width;floatscaleHeight=((float)newHeight)/height;Matrixmatrix=newMatrix();matrix.postScale(scaleWidth,scaleHeight);Bitmapnewbm=Bitmap.createBitmap(bm,0,0,width,height,matrix,true)
7、;if(bm!=null&!bm.isRecycled()){bm.recycle();//销毁原图片bm=null;}returnnewbm;}------杰瑞教育(www.jerehedu.com)专注IT技能培训打造一流人才服务平台------烟台杰瑞教育科技有限公司(Android开发培训部)版权所有3、imageCrop()方法执行效果如图:/***按照一定的宽高比例裁剪图片*@parambitmap要裁剪的图片*@paramnum1长边的比例*@paramnum2短边的比例*@paramisRecycled是否回收原图片
8、*@return裁剪后的图片*/publicstaticBitmapimageCrop(Bitmapbitmap,intnum1,intnum2,booleanisRecycled){if(bitmap==null){returnnu