如何把Android内存中的图片保存下来,估计困过不少小伙伴吧,今天带领大家实现一下如何获取内存中的图片。
问题描述:当我们使用Viewpage展示图片时,如何当用户滑动欣赏时,将自己喜欢的照片保存下来呢?
问题解决方式:当我们看到图片时,图片这是就存在于手机内存中,我们自需要将其下载到本地即可,具体的实现,请看代码:
//将商品展示的照片从内存下载下来LinearLayout v = (LinearLayout) pageViewsPhoto.get(delImageNumber);//获得图片的视图 if(v != null) { ImageView image = (ImageView)v.getChildAt(0);//获得视图里面的图片控件 if(image != null){ BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();//通过图片控件获得图片 if(drawable != null) { Bitmap bmpIcon = drawable.getBitmap();//将图片转换为Bitmap}}}
pageViewsPhoto是我们的ViewPage控件,delImageNumber就是我们打算下载的那张,在ViewPage中显示的数目
到这里关于图片的下载就已经完成了,我们得到的是图片的Bitmap格式,下面再给大家介绍一下如何缩放图片的大小
ThumbnailUtils :是谷歌提供的一个缩放图片的类
ThumbnailUtils t = new ThumbnailUtils();bmpIcon = t.extractThumbnail(bmpIcon,200,200);//图片缩放--Android自带方法
我们如何将图片保存到手机本地呢?
//保存照片到手机本地 public static String saveBitmap(String dir, String path, Bitmap bmp) { String picturePath = null; File fDir = new File(dir); if(fDir.exists() == false) fDir.mkdirs(); File f = new File(path); FileOutputStream fOut = null; try { fOut = new FileOutputStream(f);// bmp = reduce(bmp, 200, 200, false);//尺寸压缩 bmp.compress(Bitmap.CompressFormat.JPEG, 80, fOut); fOut.close(); } catch (Exception e) { e.printStackTrace(); } if (f.exists()) { Log.d("123", "123"); } else { Log.d("123", "123"); } picturePath = f.getAbsolutePath(); return picturePath; }