• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Android_在SD卡上保存图片

Android 水墨上仙 2877次浏览

Android_在SD卡上保存图片

首先判断SD卡是否插入–>

public String getSDPath(){
            File SDdir=null;
            boolean sdCardExist=
Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
            if(sdCardExist){
                    SDdir=Environment.getExternalStorageDirectory();
            }
            if(SDdir!=null){
                    return SDdir.toString();
            }
            else{
                    return null;
            }
    }

然后创建文件夹–>

public void createSDCardDir(){
            if(getSDPath()==null){
                    Toast.makeText(PicSharesActivity.this, "未找到SD卡", 1000).show();
            }else{
                        if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
                            // 创建一个文件夹对象,赋值为外部存储器的目录
                             File sdcardDir =Environment.getExternalStorageDirectory();
                           //得到一个路径,内容是sdcard的文件夹路径和名字
                             newPath=sdcardDir.getPath()+"/***app/tempImages/";//newPath在程序中要声明
                             File path1 = new File(newPath);
                            if (!path1.exists()) {
                             //若不存在,创建目录,可以在应用启动的时候创建
                             path1.mkdirs();
                             System.out.println("paht ok,path:"+newPath);
                           }
                     }
                     else{
                      System.out.println("false");
                    }
            }
        }

创建好文件夹之后就可以保存图片了–>

public void saveMyBitmap(String bitName,int percent) throws IOException {
                
                Bitmap bmp = drawable2Bitmap(picView.getDrawable());//这里的drawable2Bitmap方法是我把ImageView中 的drawable转化成bitmap,当然实验的时候可以自己创建bitmap
            File f = new File(newPath + bitName + ".jpg");
            f.createNewFile();
            FileOutputStream fOut = null;
            try {
                    fOut = new FileOutputStream(f);        
                    } catch (FileNotFoundException e) {        
                    e.printStackTrace();
            }
            bmp.compress(Bitmap.CompressFormat.JPEG, percent, fOut);
            try {
                    fOut.flush();
            } catch (IOException e) {
                    e.printStackTrace();
            }
            try {
                    fOut.close();
            } catch (IOException e) {
                    e.printStackTrace();
            }
    }
//附加drawable2Bitmap方法
static Bitmap drawable2Bitmap(Drawable d){
            int width=d.getIntrinsicWidth();
            int height=d.getIntrinsicHeight();
            Bitmap.Config config=d.getOpacity()!=PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565;
            Bitmap bitmap=Bitmap.createBitmap(width,height,config);
            Canvas canvas=new Canvas(bitmap);
            d.setBounds(0, 0, width, height);
            d.draw(canvas);
            return bitmap;
    }


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Android_在SD卡上保存图片
喜欢 (0)
加载中……