帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
71
帖子
0
勋章
329
Y币

拍照、从相册选择、裁剪自定义模块源码分享

[复制链接]
发表于 2015-9-23 12:41:25
本帖最后由 西兹兹 于 2015-9-23 12:42 编辑

1、是否苦恼拍照OOM闪退?
2、是否头疼SD卡路径问题?
3、是否在被不同OS版本和机型兼容性折磨?
4、是否需要自动判断并旋转图片?
5、是否需要在手机端指定压缩到<200KB?

以下附件工程是android自定义模块源码工程:  dist目录 yolanda.zip 是自定义模块压缩包;


代码示例
  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0,user-scalable=0">
  6.     <title>APICloud</title>
  7.     <link rel="stylesheet" type="text/css" href="../css/base.css" />
  8.     <link rel="stylesheet" type="text/css" href="../css/common.css" />
  9. </head>
  10. <body>
  11.     <div id="wrap">
  12.         <div id="main">
  13.             <div>
  14.                     <input type="button" onclick="getPictureByCameraCustomCrop()" value="拍照+裁剪" /><br><br>
  15.                     <input type="button" onclick="getPictureByCamera()" value="拍照+不裁剪" /><br><br>
  16.             </div>
  17.             <div>
  18.                     <input type="button" onclick="getPictureByAlbumCustomCrop()" value="从相册选择+裁剪" /><br><br>
  19.                     <input type="button" onclick="getPictureByAlbum()" value="从相册选择+不裁剪" /><br><br>
  20.             </div>
  21.         </div>   
  22.     </div>
  23. </body>
  24. <script type="text/javascript">
  25. var mtaTrack;
  26. apiready = function(){
  27.         yolanda = api.require('yolanda');
  28. };
  29. function getPictureByCameraCustomCrop(){
  30.         yolanda.getPicture({
  31.                 sourceType:'camera',
  32.                 isCustomCrop:true,
  33.                 maxSizeKB:120,
  34.                 scaleX:10,
  35.                 scaleY:7
  36.         }, function(ret, err){
  37.                if(ret.success){
  38.                        yolanda.cropImage({
  39.                                filepath:ret.filepath
  40.                        },function(ret,err){
  41.                               if(ret.success){
  42.                                       alert(ret.msg+'\n文件路径:'+ret.filepath+'\n文件大小:'+ret.size+'KB');
  43.                               }else{
  44.                                   alert(ret.msg);
  45.                               }
  46.                        });
  47.                }else{
  48.                    alert(ret.msg);
  49.                }
  50.     });
  51. }
  52. function getPictureByCamera(){
  53.         yolanda.getPicture({
  54.                 sourceType:'camera',
  55.                 isCustomCrop:false,
  56.                 maxSizeKB:120,
  57.                 scaleX:10,
  58.                 scaleY:7
  59.         }, function(ret, err){
  60.                if(ret.success){
  61.                        alert(ret.msg+'\n文件路径:'+ret.filepath+'\n文件大小:'+ret.size+'KB');
  62.                }else{
  63.                    alert(ret.msg);
  64.                }
  65.     });
  66. }
  67. function getPictureByAlbumCustomCrop(){
  68.         yolanda.getPicture({
  69.                 sourceType:'album',
  70.                 isCustomCrop:true,
  71.                 maxSizeKB:120,
  72.                 scaleX:10,
  73.                 scaleY:7
  74.         }, function(ret, err){
  75.                if(ret.success){
  76.                        yolanda.cropImage({
  77.                                filepath:ret.filepath
  78.                        },function(ret,err){
  79.                               if(ret.success){
  80.                                       alert(ret.msg+'\n文件路径:'+ret.filepath+'\n文件大小:'+ret.size+'KB');
  81.                               }else{
  82.                                   alert(ret.msg);
  83.                               }
  84.                        });
  85.                }else{
  86.                    alert(ret.msg);
  87.                }
  88.     });
  89. }
  90. function getPictureByAlbum(){
  91.         yolanda.getPicture({
  92.                 sourceType:'album',
  93.                 isCustomCrop:false,
  94.                 maxSizeKB:120,
  95.                 scaleX:10,
  96.                 scaleY:7
  97.         }, function(ret, err){
  98.                if(ret.success){
  99.                        alert(ret.msg+'\n文件路径:'+ret.filepath+'\n文件大小:'+ret.size+'KB');
  100.                }else{
  101.                    alert(ret.msg);
  102.                }
  103.     });
  104. }
  105. </script>
  106. </html>
复制代码


本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
3
帖子
0
勋章
21
Y币
拍照还是会闪退啊,亲……
20
帖子
0
勋章
1234
Y币
不错呀,希望能够支持 IOS
9
帖子
0
勋章
116
Y币
怎么用?
14
帖子
0
勋章
537
Y币
报这个错什么原图啊?复制了代码

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
3
帖子
0
勋章
21
Y币
sonong 发表于 2015-9-27 07:26
报这个错什么原图啊?复制了代码

没引用好模块
27
帖子
0
勋章
469
Y币
没有IOS模块吗
71
帖子
0
勋章
329
Y币
sonong 发表于 2015-9-27 07:26
报这个错什么原图啊?复制了代码

模块上传后,云编译或者编译自定义loader后,运行例子OK的;
14
帖子
0
勋章
537
Y币

需要哪个模块啊
14
帖子
0
勋章
537
Y币
西兹兹 发表于 2015-9-30 08:44
模块上传后,云编译或者编译自定义loader后,运行例子OK的;

云编译或者自定义loader是周末操作的啊,没搞懂
12下一页
您需要登录后才可以回帖 登录

本版积分规则