tma*_*eau 3 camera ios cordova
我正在寻找一个应用程序,其中半透明图像覆盖在相机预览上.我知道他们在本机Phonegap相机api中不支持这个.我想知道是否有人在编写Phonegap插件方面有一些经验可以给我任何关于这是否可以使用插件的建议.我想我已经看到这种技术可以通过本机代码实现,所以在我看来可以编写一个Phonegap插件来访问这个功能,我对Phonegap插件没有任何经验.
我知道,这有点太晚了,但有一种方法(仅限iPad).您可以使用标准org.apache.cordova.camera-Plugin.但你必须稍微调整一下
第一个子类,CDVCameraPicker因此您可以通过cordova-api切换叠加层:
CDVCameraPicker + Overlay.h:
#import "CDVCamera.h"
@interface CDVCameraPicker (Overlay)
@property (nonatomic, strong) id showOverlay;
@end
Run Code Online (Sandbox Code Playgroud)
CDVCameraPicker + Overlay.m:
#import "CDVCameraPicker+Overlay.h"
#import <objc/runtime.h>
static void *overlayKey;
@implementation CDVCameraPicker (Overlay)
@dynamic showOverlay;
- (void) setShowOverlay:(id)showOverlay {
objc_setAssociatedObject(self, overlayKey, showOverlay, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (id) showOverlay {
return objc_getAssociatedObject(self, overlayKey);
}
@end
Run Code Online (Sandbox Code Playgroud)
然后在检查ImagePickerSourceType后将这些行添加到CDVCamera.m(第132行)
if ([cameraPicker.showOverlay intValue] == 1) {
UIImageView *overlay = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
overlay.contentMode = UIViewContentModeScaleAspectFill;
overlay.image = [UIImage imageNamed:@"overlay.png"];
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在CDVCamera.m中导入子类CameraPicker
#import "CDVCameraPicker+Overlay.h"
不,你必须编辑Camera.js-File在其他选项下面添加此行
var showOverlay = getValue(options.showOverlay, false);
Run Code Online (Sandbox Code Playgroud)
然后在最后一个索引处添加var到args-Array.就是这样.现在,您可以像这样切换叠加层:
navigator.camera.getPicture(onSuccess, onFail, { quality: 40,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
correctOrientation: true,
saveToPhotoAlbum: true,
showOverlay: false
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3397 次 |
| 最近记录: |