BitmapFactory


1.以文件流的方式,假设在sdcard下有
test.png图片
FileInputStream fis = new
FileInputStream("/sdcard/test.png");
Bitmap bitmap=BitmapFactory.decodeStream(fis);
2. 以R文件的方式,假设
res/drawable下有 test.jpg文件Bitmapbitmap =BitmapFactory.decodeResource(this.getContext().getResources(),
R.drawable.test);

3.Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
4.以ResourceStream的方式,但不用到R文件。
Bitmap.bitmap=BitmapFactory.decodeStream(getClass().getResourceAsStream(“/res/drawable/test.png”));
图片名就可以读取到 Bitmap啦。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
//图片宽高都为原来的二分之一,即图片为原来的四分一
//以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。

//第一种方式:从资源文件中得到图片
Bitmap rawBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.haha);
copyRawBitmap1=rawBitmap;
copyRawBitmap2=rawBitmap;
copyRawBitmap3=rawBitmap;
//第二种方式:从SD卡中得到图片(方法1)
String SDCarePath=Environment.getExternalStorageDirectory().toString();
String filePath=SDCarePath+"/"+"haha.jpg";
Bitmap rawBitmap1 = BitmapFactory.decodeFile(filePath, null);
//第二种方式:从SD卡中得到图片(方法2)
InputStream inputStream=getBitmapInputStreamFromSDCard("haha.jpg");
Bitmap rawBitmap2 = BitmapFactory.decodeStream(inputStream);

原文地址:https://www.cnblogs.com/DarrenChan/p/5672521.html