Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 647|回复: 0

android 在SD卡上保存图片-  Android学习

[复制链接]

该用户从未签到

发表于 2011-10-24 14:41:14 | 显示全部楼层 |阅读模式
思路如下:
首先判断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;
    }
好吧,记录下我程序中的部分代码,仅供参考,留着以后备用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 11:41 , Processed in 0.333580 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表