你的位置:首页 > 软件开发 > 操作系统 > Android图片处理

Android图片处理

发布时间:2015-12-21 18:00:08
相信做Android开发的小伙伴对于Android图片压缩、裁剪一定有很深的印象,今天我将带领大家一起学习一下这个看着高深莫测的知识,以便再以后的学习、工作中可以帮助到大家。  首先我们看一下这个问题出现的原因,当我们需要在我们的应用中添加大量图片是,程序往往会报出OMM问题,这 ...

  相信做Android开发的小伙伴对于Android图片压缩、裁剪一定有很深的印象,今天我将带领大家一起学习一下这个看着高深莫测的知识,以便再以后的学习、工作中可以帮助到大家。

  首先我们看一下这个问题出现的原因,当我们需要在我们的应用中添加大量图片是,程序往往会报出OMM问题,这是什么问题呢?是当我们添加的照片过多或过大时,Android就会报出超内存错误,往往我们遇到这个问题都很无奈,进行图片缓存优化可以帮助我们解决这个问题,但是很多时候我们根本不知道,如何进行内存优化,很明显我就是这样的一位,这里我采用了压缩图片、裁剪图片的方式,减少图片占用的内存,从而使图片展示流畅。

  下面我们先看一下如何进行图片的裁剪:裁剪图片有两种方式,一种调用系统的裁剪方式,这种方式可以方便用户选择自己的裁剪区域,很多关于图片裁剪的视频,讲的就是这一种;第二种是通过后台函数直接进行裁剪,这种方式的好处在于,简化了用户的操作,方便快捷。对于第一种,大家可以百度一下,本篇我们一起来探讨一下如何通过后台函数实现对图片的自动裁剪。

File file = new File(fileString);//文件对象;fileString:文件的地址InputStream is = null;try {  is = new FileInputStream(file);//获得一个文件输入流对象} catch (FileNotFoundException e) {  e.printStackTrace();}BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = false;//这个参数一定要设置为false;如果将其设为true的话,在decode时将会返回null,通过此设置可以去查询一个bitmap的属性,比如bitmap的长与宽,而不占用内存大小double n = file.length()/1024.0;//获得文件的大小if(n<200){  options.inSampleSize = 2;//width,hight设为原来的二分一}else{  options.inSampleSize = 3;//width,hight设为原来的三分一}    Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);

原标题:Android图片处理

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录