zoukankan      html  css  js  c++  java
  • Android 图片在SD卡及包下的存储

    public class FileBitmap {
        /**
         * 获取sd卡中的bitmap,bitmap可见
         * 
         * @param bitmap
         *            读取bitmap的路径
         * @return bitmap
         */
        public static Bitmap getBitmapByPath(String fileNameString, String bitmapURL) {
            String bitmapName = bitmapURL.substring(bitmapURL.lastIndexOf("/") + 1);
            fileNameString = fileNameString + "/" + bitmapName;
            BitmapFactory.Options options = new BitmapFactory.Options();
            Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+fileNameString, options);
            return bm;
        }
    
        /**
         * 在SD卡中存储bitmap,bitmap可见
         * 
         * @param fileName
         *            保存bitmap的文件夹路径
         * @param bitName
         *            bitmap的路径
         * @param mBitmap
         *            要保存的bitmap
         * @throws IOException
         */
        public static void saveMyBitmap(String fileName, String bitmapURL,
                Bitmap mBitmap) throws IOException {
            String bitmapName = bitmapURL.substring(bitmapURL.lastIndexOf("/") + 1); // 传入一个远程图片的url,然后取最后的图片名字
            File tmp = new File(Environment.getExternalStorageDirectory()+fileName);
            
            if (!tmp.exists()) {
                tmp.mkdir();
            }
            File f = new File(Environment.getExternalStorageDirectory()+fileName+"/"+bitmapURL);
            f.createNewFile();
            FileOutputStream fOut = null;
            try {
                fOut = new FileOutputStream(f);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
            
            try {
                fOut.flush();
                fOut.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        /*
         * 保存图片到本地,这个是把图片压缩成字节流然后保存到本地,所以本地的图片是无法显示的
         * 
         * @param mBitmap
         * 
         * @param imageURL
         * 
         * @param cxt
         */
        public static void saveBitmap(Bitmap mBitmap, String imageURL, Context cxt) {
    
            String bitmapName = imageURL.substring(imageURL.lastIndexOf("/") + 1); // 传入一个远程图片的url,然后取最后的图片名字
    
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            mBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
    
            FileOutputStream fos = null;
            ObjectOutputStream oos = null;
    
            try {
                fos = cxt.openFileOutput(bitmapName, Context.MODE_PRIVATE);
                oos = new ObjectOutputStream(fos);
                oos.writeObject(byteArray);
            } catch (Exception e) {
                e.printStackTrace();
                // 这里是保存文件产生异常
            } finally {
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        // fos流关闭异常
                        e.printStackTrace();
                    }
                }
                if (oos != null) {
                    try {
                        oos.close();
                    } catch (IOException e) {
                        // oos流关闭异常
                        e.printStackTrace();
                    }
                }
            }
        }
    
        /**
         * 读取本地私有文件夹的图片
         * 
         * @param name
         * @param cxt
         * @return
         */
        public static Bitmap getBitmap(String fileName, Context cxt) {
            String bitmapName = fileName.substring(fileName.lastIndexOf("/") + 1);
            FileInputStream fis = null;
            ObjectInputStream ois = null;
            try {
                fis = cxt.openFileInput(bitmapName);
                ois = new ObjectInputStream(fis);
                byte[] byteArray = (byte[]) ois.readObject();
                Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0,
                        byteArray.length);
                return bitmap;
            } catch (Exception e) {
                e.printStackTrace();
                // 这里是读取文件产生异常
            } finally {
                if (fis != null) {
                    try {
                        fis.close();
                    } catch (IOException e) {
                        // fis流关闭异常
                        e.printStackTrace();
                    }
                }
                if (ois != null) {
                    try {
                        ois.close();
                    } catch (IOException e) {
                        // ois流关闭异常
                        e.printStackTrace();
                    }
                }
            }
            // 读取产生异常,返回null
            return null;
        }
    
    }
  • 相关阅读:
    如何获取url访问历史记录
    js跨域总结
    setAttribute的兼容性
    js中原生对象、内置对象和宿主对象(转)
    一道变态的js题
    如何判断js是否加载完全
    深入理解viewport(转)
    webapp之路--理解viewport的使用
    zepto学习之路--源代码提取
    js正则之零宽断言
  • 原文地址:https://www.cnblogs.com/Cherry-B/p/4613701.html
Copyright © 2011-2022 走看看