来源:http://blog.sina.com.cn/s/blog_a2a3823601010guz.html

想读取本地项目里的资源图片,但又不能用到R文件。

        现总结以下几种读取Bitmap的方法。
   1.以文件流的方式,假设在sdcard下有 test.png图片
FileInputStream fis = new FileInputStream("/sdcard/test.png");
Bitmap bitmap  = BitmapFactory.decodeStream(fis);
   2. 以R文件的方式,假设 res/drawable下有 test.jpg文件
 Bitmap  bitmap = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test);
    
  3.以ResourceStream的方式,但不用到R文件。
  Bitmap.bitmap=BitmapFactory.decodeStream(getClass().getResourceAsStream(“/res/drawable/test.png”));

说明一下,我为什么用第三种方法读取Bitmap。
因为项目的要求啦,哈哈!废话。主要是方便把程序的资源图片插入到本地sqlite中,到时只需传入/res/drawable + 图片名就可以读取到 Bitmap啦。

还有一种情况值得考虑的,就是当图片资源太大的适合,会出现内存溢出。如何解决呢?
 
BitmapFactory.Options options = new BitmapFactory.Options();
 
options.inSampleSize = 2;  //图片宽高都为原来的二分之一,即图片为原来的四分一
 
//以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。

更多相关文章

  1. Ubuntu 下更新adt 的问题
  2. Ubuntu 12.04中Android(安卓)NDK r8d 编译 FFmpeg 0.11.1 并使用
  3. android通过HTTP协议上传文件至远程服务器
  4. 如何用 Gradle 构建 Android(安卓)工程项目
  5. android pagerView
  6. 从内存卡读取xml文件到内存,写入xml到sd卡
  7. Android(安卓)FileProvider的理解
  8. android解决内存溢出的问题(没有从根本上解决)
  9. SharedPreferences存与取,

随机推荐

  1. 个人文章汇总
  2. Android设备如何保证数据同步写入磁盘
  3. MULTIPLE TARGETS FROM ONE ANDROID SOUR
  4. Android Studio:resource android:attr/di
  5. Handling Android 2.3 WebView's broken
  6. Android Unable to resolve target "Andr
  7. Android EditText默认不弹出输入法
  8. Android SQLite操作类--封装
  9. Android(安卓)常见面试题
  10. Twitter V1.1在Android中的应用