Android 读取保存在本地的图片 (读取中的一个大坑)
2014-11-12 16:01
375 查看
如此简单的问题,结果被纠结了一天,无论怎么搞就是崩溃,将读取路径写死也不可以,但是将其他文件夹的图片贴到这个文件夹就可以读取,文件保存明明是没有问题的,但是就是在用imageview来显示的时候就是会崩溃。最后发现问题所在了,就是在显示的图片的时候用到了Bitmap的一个方法,
首先是对于图片的获取保存在之前的博客中有写,今天写一下如何将图片读出来,然后将图片的做修改后,贴出来,之前对图片的保存如果保存的是createBitmap获得图片的话将不能够在使用 creatBitmap来创建一个适应屏幕的Bitmap的来进行显示了。
createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) Returns an immutable bitmap from subset of the source bitmap, transformed by the optional matrix.调用这个方法时,并没有对其返回的类型细致的去看,结果出现了这个问题,调用该方法后,返回的是一个不可修改的Bitmap,将其保存在本地后,然后将其读取出来,然后为了防止出现图片过得问题要对其进行修改,所以用到了一个方法就是将该图片作为资源图片,然后创建一个Bitmap图片对其进行显示,根据资源文件创建出一个新的图片出来其实就对原图片的修改,所以说当我们处理到着的时候就会出现错误。
首先是对于图片的获取保存在之前的博客中有写,今天写一下如何将图片读出来,然后将图片的做修改后,贴出来,之前对图片的保存如果保存的是createBitmap获得图片的话将不能够在使用 creatBitmap来创建一个适应屏幕的Bitmap的来进行显示了。
try {
//一个文件输入流,根据指定路径将所需要的图片读取进来。通过上述方法,我们就可以将我们从本地获取的图片添加到我们在布局中写的ImageView 中。
FileInputStream in = new FileInputStream(cursor.getString(2));
bitmap = BitmapFactory.decodeStream(in);
Log.i("测试", bitmap+"");
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//将所获得图片进行处理,然后将图片
float scaleWidth = (width - 15)/ ((float) bitmap.getWidth());
float scaleHeight = scaleWidth;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap newbm = Bitmap.createBitmap(bitmap, 0,0, bitmap.getWidth(),bitmap.getHeight(),matrix,true);
bitmap.recycle();
ImageView image = new ImageView(this);
image.setImageBitmap(newbm);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp1.leftMargin=5;
editContent.addView(image,lp1);
相关文章推荐
- android读取本地资源图片的一个方法返回值是Bitmap
- Android 调用用相机拍照保存在本地,imageview根据路径读取图片
- Android 选取图片、手机拍照以及保存图片到本地、读取图片
- Android 玩转图片(读取图片转化Bitmap,保存本地,采样压缩)
- android 读取本地或网络图片,转换为Bitmap 并保存本地中
- Java从网络读取图片并保存至本地
- Android对图片的压缩读取和保存
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- 介绍一个可以读取保存在程序集里面的图片资源的小工具
- android从本地媒体库获取图片上传至服务器保存
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- 从数据库中读取一个图片并保存为一个图片文件[转]
- 从数据库中读取一个图片并保存为一个图片文件
- android端读取本地图片出现OutOfMemoryException
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byt
- Android对图片的压缩读取和保存
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android读取本地或网络图片方法
- 将远程图片读取到本地,并保存