2021SC@SDUSC

目录

案例——draw_compare

MSurfaceView类——SurfaceView基本框架

saveToFile(Bitmap bitmap)方法

SD卡状态:

对SD卡状态的监听方式:


案例——draw_compare

MSurfaceView类——SurfaceView基本框架

saveToFile(Bitmap bitmap)方法

该方法用于将文件保存至SD卡

    public void saveToFile(Bitmap bitmap) {//获取SD卡状态String state = Environment.getExternalStorageState();//判断SD卡是否就绪if (!state.equals(Environment.MEDIA_MOUNTED)) {Log.e("TAG","SD card is not mounted");return;}//取得SD卡根目录File file = Environment.getExternalStorageDirectory();try {Log.e("T", "======SD卡根目录:" + file.getCanonicalPath());if(file.exists()){Log.e("T", "file.getCanonicalPath() == " + file.getCanonicalPath());}/*输出流的构造参数1:可以是File对象  也可以是文件路径输出流的构造参数2:默认为False=>覆盖内容; true=>追加内容*/File myfile=new File(file.getCanonicalPath()+"/dbq.jpg");FileOutputStream fos = new FileOutputStream(myfile);bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);fos.flush();fos.close();
//            Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();Log.e("TAG","save successfully");} catch (IOException e) {e.printStackTrace();} finally {}}

SD卡状态: 

Environment.MEDIA_MOUNTED // sd卡在手机上正常使用状态 
Environment.MEDIA_UNMOUNTED // 用户手工到手机设置中卸载sd卡之后的状态 
Environment.MEDIA_REMOVED // 用户手动卸载,然后将sd卡从手机取出之后的状态 
Environment.MEDIA_BAD_REMOVAL // 用户未到手机设置中手动卸载sd卡,直接拨出之后的状态 
Environment.MEDIA_SHARED // 手机直接连接到电脑作为u盘使用之后的状态 
Environment.MEDIA_CHECKINGS // 手机正在扫描sd卡过程中的状态

在做android开发对sd操作时,最好是sd卡处于Environment.MEDIA_MOUNTED状态时,对sd卡上的文件进行操作,其他状态不宜进行操作。

对SD卡状态的监听方式:

1.注册StorageEventListener来监听sd卡的状态

StorgeEventListener中有onStorageStateChanged()方法,当sd卡状态改变时,此方法会调用,对各状态的判断一般会用到Environment类,此类中包含的有关sd卡状态的常量有:

MEDIA_BAD_REMOVAL:表明SDCard 被卸载前己被移除 
MEDIA_CHECKING:表明对象正在磁盘检查 
MEDIA_MOUNTED:表明sd对象是存在并具有读/写权限 
MEDIA_MOUNTED_READ_ONLY:表明对象权限为只读 
MEDIA_NOFS:表明对象为空白或正在使用不受支持的文件系统 
MEDIA_REMOVED:如果不存在 SDCard 返回 
MEDIA_SHARED:如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回 
MEDIA_UNMOUNTABLE:返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装 
MEDIA_UNMOUNTED:返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装

2.通过接收Intent来监听sd卡的状态

sd卡状态改变时,MountServices会发送Intent,可以通过接受Intent来得到sd卡的状态,Intent中关于sd卡状态的action有:

MEDIA_BAD_REMOVAL_ACTION:sd卡已经从sd卡插槽拔出,但是挂载点还没解除 
MEDIA_EJECT_ACTION:用户想要移除sd卡 
MEDIA_MOUNTED_ACTION:sd卡被插入,且已经挂载 
MEDIA_REMOVED_ACTION:sd卡被移除 
MEDIA_SHARED_ACTION:sd卡作为 USB 大容量存储被共享,挂载被解除 
MEDIA_UNMOUNTED_ACTION:sd卡存在,但还没有挂载 
MEDIA_SCANNER_STARTED_ACTION:开始扫描 
MEDIA_SCANNER_FINISHED_ACTION:扫描完成

android读取资源文叫bitmap,通过代码获取Bitmap图片资源

1. 图片存放在SD卡中

Bitmap bitmap = BitmapFactory.decodeFile(path);

这里path是图片位图资源的路径,根目录是/sdcard

2. 图片在项目的res文件夹下面

ApplicationInfo appInfo = getApplicationInfo();

int resID = getResources().getIdentifier(name, "drawablePath", appInfo.packageName);

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resID);

这里是通过图片的id,或者直接通过R文件来获取(例如 R.drawable.bitmapName)图片的,其中,name是

该图片的名字,drawablePath是该图片存放的目录,appInfo.packageName是应用程序的包。

3. 图片放在src目录下

//图片存放的路径

String path = "com/xiangmu/test.png"

//得到图片流

InputStream is = getClassLoader().getResourceAsStream(path);

Bitmap bitmap = BitmapFactory.decodeStream(is);

4. Android中有个Assets目录,这里可以存放只读文件

//图片存放的路径为asset/test.png

String path = "test.png";

InputStream is = getResources().getAssets().open(path);

Bitmap bitmap = BitmapFactory.decodeStream(is);

移动互联网开发教学案例学习-8相关推荐

  1. 移动互联网开发教学案例学习-13

    2021SC@SDUSC 目录 案例--draw_compare AdjustBitmap类 sizeBitmap方法 scaleBitmap方法 getCircleBitmap方法 对本学期移动互联 ...

  2. 【超简短的独立游戏开发教学】学习记录

    [超简短的独立游戏开发教学]学习记录 一.游戏开发是什么 二.工欲善其事,必先利其器(工具) 三.关于编程 七.Unity常用组件 八.UI还能长什么样? 九.草履虫也能看得懂的乐理入门 十.为了讲故 ...

  3. 移动互联网开发技术教学网站项目研究综述

    2021@SDUSC 目录 第一篇:综述 一.项目介绍 二.项目分工 三.项目所用软件下载和环境配置 1.安装Android Studio 2.配置JDK环境 四.使用说明 第一篇:综述 一.项目介绍 ...

  4. unity应用开发实战案例_Unity开发实战游戏教学案例分享

    进行项目实战是快速入门或提升Unity开发的关键.Asset Store资源商店中,有大量完整项目模板和教学案例,帮助您通过项目实战,让你体会到Unity开发的成就感. 本文我们为大家准备了三款实战游 ...

  5. 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频

    基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...

  6. Delphi进行CAD二次开发教学(1)——基础学习:运行、新建、打开图形文件

    http://hi.baidu.com/piaoliuxia/blog/item/d61e03faed3bd18c9f514670.html 查看文章   [原创]Delphi进行CAD二次开发教学( ...

  7. OpenCL开发案例学习

    OpenCL开发案例学习 本文主要为开发者提供一些OpenCL程序的实现方法,帮助开发者更直观地了解如何使用OpenCL编写程序. [案例]基于OpenCL的并行HDR算法实现 [案例]基于OpenC ...

  8. golang 比较完美的通用框架,kratos v2.0 学习,一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。涵盖了互联网开发的常用功能模块的开发库。

    目录 前言 1,关于kratos v2.0 2,Principles 原则 2,Features 特色 3,Architecture 架构 4,总结 前言 本文的原文连接是: https://blog ...

  9. 慕课网_《Java微信公众号开发进阶》学习总结

    时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:http://img.mukewang.com/down/... 学习 ...

最新文章

  1. (一)Java基础巩固
  2. MySQL面试题 | 附答案解析(一)
  3. 双料状元收割神器来了!清华设立计算机金融双学士学位
  4. mysql hostname uroot_CACTI网络流量监控
  5. 使用C# 未解决的问题(VS2012)
  6. java 如何结束线程_java中,如何安全的结束一个正在运行的线程?
  7. light7在微信ios下input点击困难
  8. TurboMail成功建设某省建工集团邮件系统
  9. (oracle)八、表
  10. 我的世界javamod怎么装_你不装绞盘,怎么在越野圈混?
  11. zabbix配置方糖微信推送报警
  12. Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux
  13. 路由器的两种工作模式
  14. 沃丰科技AI助力客户服务数字化转型加速
  15. Collision Filtering(selective collisions) 碰撞过滤(选择性碰撞)
  16. 关于LVM快速扩展Linux根目录/,缩减重挂载/home目录
  17. mysql where in and_mysql中 where in 用法详解
  18. C和C++混合编程(error C2059: syntax error : 'string')
  19. tar 将软连接的文件也进行打包
  20. hsql统计两天数据差异的算法及lag()/led()分析函数的使用

热门文章

  1. Java基础篇(集合)
  2. 爱普生XP245 EPSON XP245升级固件墨盒不识别免芯片固件免费下载解决方法教程
  3. MySQL异常 check the manual that corresponds
  4. C语言期末考试测试题及答案
  5. 移动硬盘文件乱码是怎么回事?数据还能恢复吗
  6. 离校毕业生刚去新的陌生城市,需要提高警惕的几点
  7. vue-cli cdn方式引入Vue模块
  8. 2022ICPC杭州 F. Da Mi Lao Shi Ai Kan De codeforces gym 104090F
  9. python3APP爬虫--爬取王者荣耀小姐姐cosplay照片(附源码)
  10. 钉钉邮箱登录入口_阿里企业邮箱发信失败 报错:554reject by content_「阿里云企业邮箱_阿里企业邮箱」指定经销商热线:400-855...