<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<script language="javascript" src="phonegap.js"></script>
<script language="javascript" >
function $(id){
return document.getElementById(id);
}
var pictureSource;//图片来源
var destinationType; //设置返回值的格式
var m_imageURI; //选择的图像文件
//等待设备准备好
document.addEventListener("deviceready", onDeviceReady, false);
//设备已经准备好了
function onDeviceReady()
{
toLog("onDeviceReady!");
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
//从相机获取图像,返回的是URI
function getCamera(){
navigator.camera.getPicture(onSuccessPic, onFailPic, { quality: 50,
destinationType: destinationType.FILE_URI });
}
//从图库中获取图像
function getLocalPic(){
navigator.camera.getPicture(onSuccessPic, onFailPic, { quality: 50, destinationType: destinationType.FILE_URI,sourceType: pictureSource.PHOTOLIBRARY });
}
//获取图像成功
function onSuccessPic(imageURI) {
//var image = document.getElementById('myImage');
//image.src = imageURI;
toLog("pic: "+ imageURI);
m_imageURI = imageURI;
//转换URI到全路径
window.resolveLocalFileSystemURI(imageURI, gotFileEntry, onFileFail);
}
//获取图像失败
function onFailPic(message) {
//alert('Failed because: ' + message);
toLog(message);
}
//转换URI到全路径
function gotFileEntry(fileEntry) {
fpath = fileEntry.fullPath;
toLog("fullpath: "+ fpath);
$("path").value = fpath;
$("image").src = fpath;
}
//文件操作失败
function onFileFail(error) {
toLog("error code: "+ error.code);
};
//移动图像
function toMove(){
DoFile(true);
}
//负责图像
function toCopy(){
DoFile(false);
}
//
function DoFile(ismove){
var fname = $("name").value; //新的文件名称
var dirname = $("dir").value; //目标路径
//开始操作文件
//通过本地URI参数检索DirectoryEntry或FileEntry
window.resolveLocalFileSystemURI(m_imageURI,
function(fileEntry){
//请求持久化的文件系统
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,
function(fileSystem){
//如果目录不存在就创建
var direc = fileSystem.root.getDirectory(dirname, {create: true},
function( parent ){
toLog("Parent Name:" + parent.name +"<br/>Full Path:"+ parent.fullPath);
//移动文件
if(ismove){
fileEntry.moveTo(parent/*fileSystem.root*/, fname,
function(){
toLog("Move OK: "+ parent.fullPath +"/"+ fname );
}, onFileFail);
}else{
//复制文件
fileEntry.copyTo(parent/*fileSystem.root*/, fname,
function(){
toLog("Copy OK: "+ parent.fullPath +"/"+ fname );
}, onFileFail);
}//end if
},onFileFail);
}, onFileFail);
},onFileFail);
}
//显示日志
function toLog(s){
strs = $("logs").innerHTML;
strs = strs + "<br/>" + s ;
$("logs").innerHTML = strs;
}
</script>
</head>
<body>
<button onClick="getCamera();"> Camera </button>
<button onClick="getLocalPic()"> LocalPic </button>
<br/><br/>
Path: <input type="text" id="path" value=""/><br/><br/>
LocalDir: <input type="text" id="dir" value="/sdcard/abcde"/><br/>
FileName: <input type="text" id="name" value="testtest.jpg"/><br/>
<br/>
<button onClick="toMove();"> Move </button>
<button onClick="toCopy();"> Copy </button>
<div id="logs">
Log:
</div>
<img src="" id="image" />
</body>
</html>
来自
http://hi.baidu.com/xiaoguo_me/item/5f3b5f3c938b46bd124b1401
- 大小: 35.2 KB
分享到:
相关推荐
首先,当我们需要启动相机并保存拍摄的照片到指定路径时,可以使用`startActivityForResult()`方法配合`MediaStore.ACTION_IMAGE_CAPTURE`意图。通过`Intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)`传递一个`Uri`...
这个参数允许我们指定拍照后图片的保存位置,这样就可以避免系统自动保存图片到默认位置而导致的应用程序无法访问问题。代码示例: ```java Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if ...
在Android平台上,调用相机是常见的功能之一,用于让用户拍摄照片并将其集成到应用程序中。主要有两种方式来实现这一功能: 1. **调用系统相机应用**: 这是最简单且常用的方法,通过发送一个`Intent`来启动系统...
在Android开发中,有时我们需要将Bitmap对象保存到设备的外部存储(通常称为SD卡),以便于用户能够访问或共享图片。下面将详细讲解如何实现这一功能,以及涉及到的相关知识点。 首先,我们需要创建一个Bitmap对象...
在不同的Android版本之间,处理图片保存和刷新相册的方式可能会有所不同,因此在实际开发中需要针对不同版本进行适配。对于Android 4.4以下的版本,开发者可能需要进行额外的测试和调整,以确保功能正常运行。 此外...
在Android开发中,调用系统相机并保存拍摄的照片是一项常见的任务。这个"android调用拍照存储demo"就是一个实例,展示了如何实现这一功能。下面将详细解释这个Demo中的关键知识点。 首先,我们需要在...
1. **系统截图**:可以使用`View`的`drawToBitmap()`方法,将指定视图绘制到`Bitmap`,然后保存为图片文件。注意,此方法不包含状态栏和导航栏。 2. **全局截图**:通过反射获取`WindowManager`服务的`capture...
- 获取系统原始图片数据的关键在于`EXTRA_OUTPUT`参数的设置,它指定保存图片的URI,这样相机应用会将完整分辨率的图像写入到指定的文件,而不是返回压缩过的版本。 7. **权限管理**: - 记得在AndroidManifest....
实拍过程通常涉及到启动Camera活动,获取预览流,并在用户按下快门按钮时捕获图像。 4. **SDCard存储**:在Android中,外部存储(通常是SD卡)可以通过`Environment.getExternalStorageDirectory()`访问,用于保存...
在确保SD卡可用的情况下,可以使用`FileOutputStream`将Bitmap对象压缩为JPEG格式并保存到指定路径: ```java String sdStatus = Environment.getExternalStorageState(); if (!sdStatus.equals(Environment.MEDIA_...
3. **保存图像**:接着创建一个文件输出流,并将缓存图像压缩为JPEG格式保存到指定路径下。这里使用了系统时间戳作为文件名的一部分,确保每次截屏生成的文件名都是唯一的。 4. **异常处理**:考虑到文件操作可能会...
通常情况下,可以选择将图片保存到SD卡上,以避免占用应用程序自身的存储空间。例如: ```java public static String SCREEN_SHOTS_LOCATION = "/sdcard/"; ``` 这里的`"/sdcard/"`是指定的SD卡根目录,可以根据...
5. **保存阶段**:处理后的图像或视频最终会被保存到指定的位置,如内部存储或外部SD卡上。 #### 四、代码分析 Camera调用流程图展示了Android提供的Camera框架结构。在移植新的硬件时,我们无需修改现有的代码...
为了保存拍摄的照片到指定目录,可以通过`EXTRA_OUTPUT`额外参数传递一个`Uri`对象,指向保存照片的文件路径。例如: ```java Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File file = new ...
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...