1:直接用setBackgroundResource(R.drawable.img) 容易引起OOM问题,

使用多分辨率图片设计[hdpi,mdpi,ldpi,xhdpi]。UI图片分别设计hdpi,mdpi,ldpi,xhdpi等多种规格,这也是官方推荐的方式,

使用这种方式,还有好处就是可以降低峰值内存,优先避免内存溢出。在android中图片的加载会根据分辨率来自动缩放(而缩放的过程会额外消耗内存)

2:用setImageBitmap(bp)来代替SetBackGroundResource(R.drawable.img);

代码
        
public Bitmap getBitmapStream(int id) 
{
BitmapFactory.Options bmFactOpt = new BitmapFactory.Options();
bmFactOpt.inPreferredConfig = Bitmap.Config.RGB_565;//表示16位位图 565代表对应三原色占的位数
bmFactOpt.inInputShareable = true;
bmFactOpt.inPurgeable = true;//设置图片可以被回收
InputStream is = getResources().openRawResource(id);
Bitmap bitmap = BitmapFactory.decodeStream(is, null, bmFactOpt);//比decodeResource()节省内存
try 
{
   is.close();
} catch (IOException e) 
{
   Log.e("IOException:",e.getMessage());
   e.printStackTrace();
}
return bitmap;
}

imageview.setImageBitmap(getBitmapStream(R.drawable.id));

3:setImageBitmap(bp)虽然节省内存,但不能拉伸,如果想再进行拉伸,可以用setBackground(Drawable);

Bitmap bp = getBitmapStream(R.drawable.pag03);
    imageview.setBackground(new BitmapDrawable(this.getResources(),bp)); 这样既可以节省内存,又可以拉伸整个手机屏幕

setBackgroundResource()与setImageBitmap()以及setBackground()的使用相关推荐

  1. Android开发万能Utils(工具大全)

    AndroidUtils Android开发不得不收藏的Utils 之前写这篇文章主要是项目应用到的Utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理 ...

  2. Fragment管理工具类

    Fragment相关→FragmentUtils.java→Demo addFragment : 新增fragment removeFragment : 移除fragment replaceFragm ...

  3. 分享一个整理了很多Android开发工具类的链接AndroidUtilCode

    https://github.com/Blankj/AndroidUtilCode API Activity相关→ActivityUtils.java→Demo isActivityExists : ...

  4. Android工具类blankj

    开发人员不得不用的工具这里几乎都已经总结,在这里面很好的一个库. 地址:https://github.com/Blankj/AndroidUtilCode Gradle: compile 'com.b ...

  5. AndroidUtilCode 介绍和使用

    AndroidUtilCode  是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的 Demo 和单元测试,利用其封装好的 APIs 可以大大提高开发效率,如今它主要包括两部 ...

  6. AndroidUtilCode 最强大的工具类

    一.前言: AndroidUtilCode 是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的 Demo 和单元测试,利用其封装好的 APIs 可以大大提高开发效率,如今它主 ...

  7. Android公共工具库使用说明文档

    Android公共工具库 1.集成方法 (1).在工程的build.gradle中添加 allprojects {repositories {...maven { url 'https://www.j ...

  8. Android开发人员的代码速查字典

    2019独角兽企业重金招聘Python工程师标准>>> 为方便查找,已进行大致归类,其目录如下所示: Activity相关→ActivityUtils.java→Demo isAct ...

  9. Android Studio常用API

    API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验 ...

  10. Android最实用的工具类框架——AndroidUtilCode

    AndroidUtilCode是一个功能强大且易于使用的Android库.该库封装了Android开发中经常使用的具备完整演示和单元测试的功能.经过使用其封装的API,能够大大提升开发效率.该程序主要 ...

最新文章

  1. 几个常用的宏:likely和unlikely __raw_writel
  2. shtml与php的区别,htm,html.shtml区别
  3. java comparator_Java基础之String漫谈(二)
  4. linux加密框架 crypto 算法管理 - 算法查找接口 crypto_larval_lookup
  5. Egg框架入门教程合集之插件/工具/教程/专栏/开源项目
  6. python基础入门--input标签、变量、数字类型、列表、字符串、字典、索引值、bool值、占位符格式输出...
  7. DataTable数据集动态构造Table表结构
  8. 46. Define non-member functions inside templates when type conversions are desired.
  9. 学习笔记-关于pf标志位
  10. 动态视频壁纸多功能工具箱微信小程序源码,支持外卖CPS和流量主
  11. 【软件推荐】电脑控制手机软件Scrcpy
  12. NPN和PNP三极管搭建推挽电路实验
  13. 宏碁暗影骑士擎2022-重装系统-检测不到硬盘
  14. Windows socket之IOCP实例----IOCP开发驾照理论考试系统
  15. fullPage的简单使用
  16. selenium基本知识点+浏览器隐私模式
  17. tensorflow 1.10下Mask RCNN实现自己数据集
  18. 此iphone尚未备份显示未连接服务器,iPhone出现尚未备份的提示是怎么回事 提示取消方法...
  19. Python汉英/英汉翻译(百度API/有道API)
  20. FME学习资料……new

热门文章

  1. 零基础CSS入门教程(7)——CSS外联写法
  2. 物理地址是怎么确定的?以8086为例
  3. 疫情后为提高免疫力和健康对红参需求大幅上升;辉瑞与辉凌就前列腺癌创新药注射用醋酸地加瑞克达成战略合作 | 医药健闻...
  4. 游戏设计---游戏中战斗力计算方法(整理)
  5. opencv-python Shi-Tomasi角点检测和特征追踪
  6. [转]通过路径直接打开时地图时报错的解决方法
  7. Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
  8. xp 安装IPv6后,无法上网
  9. 在线文档 - Google 文档的数据协议设计
  10. 什么是monitor