Android的系统的标准默认每一个应用程序分配的内存是16M.所以来说是很宝贵的,在创建应用的时候要尽可能的去节省内存,可是在载入一些大的文件的时候,比方图片是相当耗内存的,一个1.3M的图片,分辨率是2560X1920(宽X高)图片当载入到手机内存的时候就会请求19M的一块内存,这是远远超出了系统自带的内存空间,这时候应用程序就会挂掉,所以我们要进行图片的缩放处理,以下我就来带大家创建一个用来图片缩放的应用;

应用效果图例如以下:

核心代码的实现:

package com.examp.loadpicture;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView iv;private int windowHeight;private int windowWidth;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv = (ImageView) findViewById(R.id.iv);// 获取手机的屏幕的窗口大小WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);Display display = windowManager.getDefaultDisplay();windowHeight = display.getHeight();windowWidth = display.getWidth();}public void loadPicture(View view) {// 位图工厂类// Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/x.jpg");// 将指定的文件进行编码,转化为位图// iv.setImageBitmap(bitmap);// 图片解析配置的类Options options = new Options();// 不会真的进行图片解析,仅仅是获取到图片的头信息:宽X高 日期等options.inJustDecodeBounds = true;// 设置图片解析类的目标文件BitmapFactory.decodeFile("/sdcard/x.jpg", options);// 获取图片的高X宽int imageHeight = options.outHeight;int imageWidth = options.outWidth;System.out.println("图片的高:" + imageHeight + "图片的宽:" + imageWidth);// 使用图片的宽高和屏幕的宽高进行计算,算出比例int scaleX = imageWidth / windowWidth;int scaleY = imageHeight / windowHeight;// 缺省的比例int scale = 1;if (scaleX > scaleY & scaleY >= 1) {scale = scaleX;}if (scaleY > scaleX & scaleX >= 1) {scale = scaleY;}// 设置图片解析器真的去解析图片options.inJustDecodeBounds = false;// 设置解析的採样率,设置的值是缩放比例1/scaleoptions.inSampleSize = scale;// 再次获取图片位图,并设置採样率Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/x.jpg", options);iv.setImageBitmap(bitmap);}}

DEMO下载:

http://download.csdn.net/detail/u011936142/7448597

转载于:https://www.cnblogs.com/blfshiye/p/3796959.html

Android下将图片载入到内存中相关推荐

  1. win7(旗舰版)下,OleLoadPicture 加载内存中的图片(MagickGetImageBlob),返回值 0

    昨天去三哥家,想把拍好的照片缩小一下,我用很久前写的一个软件进行缩小,然后进行一次效果预览,这个时候弹出: Call OleLoadPicture Fail - loadPictureFromMW 奇 ...

  2. Android的Bitmap图片压缩与内存的关系

    摘要:      我们做Android应用的时候最不可避免的就是与图片打交道,而图片通常又是应用内存开销,影响性能的大头,因而这也是网上的帖子关于图片方面的内容热度比较高的原因之一.另外,发现身边的一 ...

  3. iOS 如何计算图片加载内存中所占的大小

    首先图片自动缩放到2的n次方大小,例如200 * 300像素 会变成256 * 512大小. 图片内存大小的计算公式 宽度 * 高度 * bytesPerPixel/8. bytesPerPixel ...

  4. 19_Android中图片处理原理篇,关于人脸识别站点,图片载入到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写...

    1 载入图片到内存 (1).数码相机照片特别是大于3m以上的,内存吃不消,会报OutOfMemoryError,若是想仅仅显示原图片的1/8,能够通过BitmapFactory.Options来实现. ...

  5. android glide图片框架,【Android 进阶】图片载入框架之Glide(示例代码)

    简单介绍 在泰国举行的谷歌开发人员论坛上,谷歌为我们介绍了一个名叫 Glide 的图片载入库,作者是 bumptech.这个库被广泛的运用在 google 的开源项目中,包含 2014 年 googl ...

  6. Android下资源图片的加密和解密

    2019独角兽企业重金招聘Python工程师标准>>> 转载:http://blog.csdn.net/you_and_me12/article/details/7959349    ...

  7. android图片资源加密解密,Android下资源图片的加密和解密

    apk文件使用解压工具就能看到drawable等资源,但是有些游戏中的图片资源却是无法看到的. 这个问题探索了许久-- [1]图片资源不放置在drawable文件下,放在assets中(但是解压apk ...

  8. Android复制assets目录下的图片到内存

    转自:http://www.chenwg.com/android/android%E5%A4%8D%E5%88%B6assets%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84 ...

  9. android图片模糊效果,Android下实现高效的模糊效果

    其实有关 android 下实现图片模糊的文章有很多,大多都是使用 renderscript 内置的 ScriptIntrinsicBlur 来实现的,这篇文章中的例子也不例外,但如果仅仅是调用一下 ...

最新文章

  1. DiscuzX 论坛首页 和 分 区设置版块横排
  2. mysql 连接 优化_(一)MySQL 连接优化
  3. python第三方库numpy-Python三方库:Numpy(数组处理)
  4. Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
  5. 分享cropper剪切单张图片demo
  6. CF 67A - Partial Teacher
  7. 冷热分离和直接使用大数据库_还不知道HBase冷热分离的技术原理?看这一篇就够了...
  8. 隐藏功能_IOS 14.2 隐藏功能
  9. io_service线程安全队列效率
  10. 启动提示archlinux中virtualbox无法运行问题解决
  11. idea设置修改字体大小与样式【亲测好用】
  12. RANSAC算法与原理(一)
  13. 【Java愚公】gitlab关闭注册功能
  14. Ubuntu鼠标移动中闪烁解决方法
  15. A40i使用笔记:QT使用alsa采集音频pcm信息
  16. win11如何开启电脑高性能模式?
  17. python编辑七段数码管引脚图_少儿Python程序第十二讲:单片机控制数码管
  18. SQL Server2008r2安装
  19. ios微信软键盘之殇
  20. RH358管理打印机和打印文件--配置和管理打印机

热门文章

  1. 省控线是什么意思,本科一批以及本科二批省控线是什么意思
  2. 直播卖货到底是不是卖人设?
  3. 通信工程和计算机专业与软件工程专业,从短期和长远来看,哪个专业的前景和钱景更好?
  4. RPA目前在中国的发展怎么样?
  5. i5 9400f和GTX1660能玩战地5吗?
  6. I/O设备的基本概念和分类
  7. 命令查看IPV6的IP,路由,邻居信息
  8. sql isnull函数_SQL ISNULL函数
  9. sql azure 语法_Azure Data Studio中SQL Server架构比较扩展
  10. sas rename重命名_如何使用sp_rename命令在SQL Server中重命名表