Android图片处理

  如何把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;
    }




原文地址:https://www.cnblogs.com/AndroidJotting/p/4898327.html