javascript原生移动云编程11 - 如何调用手机图库中图片
来源:互联网 发布:php隐藏域名跳转代码 编辑:程序博客网 时间:2024/04/30 18:22
用javascript在码实云平台上,可以在云里编写原生的移动应用。移动应用经常需要调用手机里图库的图片(或视频),并且把图片上传到云存储里。由于码实平台提供了全面的云服务,多媒体的上传下载就变得非常容易。这个应用实例延续了另一个使用手机相机拍照的教程。因此建议你先熟悉下相机拍照那个教程的代码。
本实例的图片列表页面和相机拍照的那个页面代码几乎完全一样,不同之处是代码的开始部分有一段显示图片加载进程的提示。你如果有较多的图片附件,加载时间比较长,这样的提示信息对用户比较友好。里一个不同之处是图片附件的展示代码,我们有意提供了另一种用Ti imageView的实现,告诉大家如果想深度定制这部分应该如何做。其中用到了Mash5.Tenant.File.download从云里下载图片文件,然后显示到一个imageView里去。
var attachment = feed.bo.Fields[1].Value;if (attachment) {var maxHeight = dipToPx(240);var imageView = Ti.UI.createImageView({width : Ti.UI.FILL,height : maxHeight,bottom: '20dip'});view.add(imageView);var iWidth = attachment.thumbnailWidth;var iHeight = attachment.thumbnailHeight;if (iWidth && iHeight) {var imageRatio = iWidth / iHeight;var viewRatio = Ti.Platform.displayCaps.platformWidth / maxHeight;if (imageRatio < viewRatio) {iWidth = maxHeight * iWidth / iHeight;iHeight = maxHeight;} else {iHeight = Ti.Platform.displayCaps.platformWidth * iHeight / iWidth;iWidth = Ti.Platform.displayCaps.platformWidth;}imageView.width = iWidth;imageView.height = iHeight;Mash5.Tenant.File.download({context : this.getContext(),fileInfo : attachment}, function (r) {if (r.success && r.file && r.file.read) {var blob = r.file.read();if (blob) {var realWidth = dipToPx(blob.width);var realHeight = dipToPx(blob.height);if (realWidth < iWidth || realHeight < iHeight) {imageView.width = realWidth;imageView.height = realHeight;}imageView.image = r.file;}}});}} else {textView.bottom = '20dip';}
页面2的完整代码请到web工具的开源部分查看,这个页面也是和云数据操作的那个教程雷同。其中引入了相机上传照片的操作,分别定义在如下的两个函数里。Mash5.Tenant.File.uploadFromCamera提供了调用相机拍照并且上传照片的完整功能。而在createParameters里面,我们使用的码实平台SDK提供的Mash5.UI.createProgressDialog来显示标配的照片上传进度条。
startCamera: function(attachView) { var parameters = this.createParameters(attachView); Mash5.Tenant.File.uploadFromCamera({ context: this.getContext(), onprogresschanged: parameters.onprogresschanged, setCancelListener: parameters.setCancelListener }, parameters.onload); },createParameters: function(attachView) { var progressDialog = Mash5.UI.createProgressDialog(); progressDialog.setProgress(0, '正在上传...'); return { onprogresschanged: function(progress) { progressDialog.show(); progressDialog.setProgress(progress, '正在上传...'); }.bind(this), setCancelListener: function(listener) { progressDialog.setCancelListener(listener); }, onload: function(r) { progressDialog.hide(); setTimeout(function() { progressDialog.hide(); }, 600); if (r.success) { var attachment = r.fileInfo; if (attachView && attachment) {attachView.clear();attachView.addAttachment(attachment);} } else { alert(r.message); } }.bind(this) }; },
另一个页面是从手机图库挑选图片并上传到码实云平台里。页面的代码和手机拍照的教程几乎完全相同,所不同的是本实例调用了码实平台SDK Mash5.Tenant.File.uploadFromGallery访问手机图库并且上传图片。
0 0
- javascript原生移动云编程11 - 如何调用手机图库中图片
- javascript原生移动云编程10 - 如何调用相机并上传下载图片视频
- javascript原生移动云编程7 - 如何调用云数据服务显示实时天气
- javascript原生移动云编程6 - 如何做动画效果
- javascript原生移动云编程12 - 如何用手机录音和播放
- javascript原生移动云编程9 - 如何使用云数据库读取和保存数据
- javascript原生移动云编程4 - 如何做图文并茂的博客页面UI
- javascript原生移动云编程5 - 如何做互动按钮和页面跳转
- javascript原生移动云编程8 - 如何插入任意web页面
- javascript原生移动云编程14 - 如何隐藏和定制屏幕上部的导航条
- javascript原生移动云编程(编外) - javascript速成答疑
- 移动页面通过javascript调取手机摄像头和图库
- android 调用图库中选择的图片
- 如何运用html5 canvas将图片保存至手机本地的图库中?
- javascript原生移动云编程2 - 原生移动UI的起点
- Android调用手机自带图库选择图片
- Android调用手机图库选择图片并调用手机的图片裁剪工具
- javascript原生移动云编程1 - 十分钟做出跨平台原生App
- ASP.NET中DataTable与DataSet之间的转换
- 根据手势移动布局
- linux 下修改 apache 启动的所属用户和组
- 查看java jdk安装路径和设置环境变量
- Exchange 2013的OWA页面出现503错误的解决办法
- javascript原生移动云编程11 - 如何调用手机图库中图片
- layout_wigth详解
- protocol buffers Scalar Value Types
- 使用物理引擎进行碰撞检测
- Json-lib 自定义序列化和反序列化
- 报表制作
- js中获取月份和季度的最后一天
- 统计代码行数
- 表 T006 和 T006_OIB 不匹配