Android 规划具有透明覆盖图像的cordova摄像头插件

Android 规划具有透明覆盖图像的cordova摄像头插件,android,ios,cordova,phonegap-plugins,Android,Ios,Cordova,Phonegap Plugins,我正在写一个需要在相机上显示透明图像的应用程序,例如作为构图指南。该应用程序必须至少在iOS和Android上发布 到目前为止,我已经找到了一个具有运行iOS源代码的插件(okstate plugin camera overlay,)和一个 所有这些都不令人满意,编译和运行时都会出现大量警告和怪癖。我想我想计划一个新的插件,它有这个功能和一个干净的、最小的实现 我在哪里可以找到创建一个支持这两个平台的精益插件的方向,以及在这两个平台上以最少干扰的方式装饰相机功能的方法 更新 请看评论:我在cor

我正在写一个需要在相机上显示透明图像的应用程序,例如作为构图指南。该应用程序必须至少在iOS和Android上发布

到目前为止,我已经找到了一个具有运行iOS源代码的插件(okstate plugin camera overlay,)和一个

所有这些都不令人满意,编译和运行时都会出现大量警告和怪癖。我想我想计划一个新的插件,它有这个功能和一个干净的、最小的实现

我在哪里可以找到创建一个支持这两个平台的精益插件的方向,以及在这两个平台上以最少干扰的方式装饰相机功能的方法

更新 请看评论:我在cordoba插件相机中制作了一个fork,并在iOS上运行。现在,我需要在Android中为相机创建一个透明覆盖层

更新2 我正在成功地使用,它没有困扰原始版本的任何问题。 它在iOS和Android上同样流畅

这是我正在使用的代码

我正在使用Weston Granger修改过的插件版本

这是代码的相关部分。它将显示图像后面的摄像头

CameraPreview.startCamera({
    x: 0,
    y: 0,
    width: screen.width,
    height: screen.height,
    camera: "back",
    tapPhoto: true,
    previewDrag: false,
    toBack: true
});
CameraPreview.setOnPictureTakenHandler(function (picture) {
    savePicture(picture);
    CameraPreview.hide();
    CameraPreview.stopCamera();
    history.back();
});
$("#clickButton").click(takePicture);
$("#switchCamera").click(CameraPreview.switchCamera);
$("#exitButton").click(function () {
    CameraPreview.hide();
    CameraPreview.stopCamera();
    history.back();
});
关于图像的html模板,它只是一个具有透明主体和图像的页面。如果要通过相机预览查看,图像应具有透明区域。 我也展示了按钮,但这是您应该根据需要定制的代码

<!-- camera.html -->
<style>
    body {
        background-color: transparent;
        background-image: none;
    }

    div.cameraButtons {
        position: fixed;
        text-align: center;
        background-color: black;
        bottom: 0px;
        width: 100%;
    }
</style>

<div class="cameraContainer">
    <img align="center" src="assets/{{frame_image}}" />
</div>

<div class="cameraButtons">
    <a id="switchCamera" style="float: right; margin-right: 8px">
        <i class="material-icons md-48" >camera_rear</i>
    </a>

    <a id="clicButton" >
        <i class="material-icons md-48" >photo_camera</i>
    </a>

    <a id="exitButton" style="float: left;">
        <i class="material-icons md-48" >backspace</i>
    </a>
</div>
<!-- /camera.html -->

身体{
背景色:透明;
背景图像:无;
}
摄影机按钮组{
位置:固定;
文本对齐:居中;
背景色:黑色;
底部:0px;
宽度:100%;
}
后置摄像机
照相/摄像机
退格

您正在链接2个插件,首先阅读它们的源代码。好吧,我选择了分叉cordova插件摄像头,并集成了okstate插件摄像头叠加中的几行代码。我注意到这就是后者的开发者所做的。两者之间的大部分变化实际上是对原始插件的更新,只有少数几行真正实现了功能。分叉标准插件并集成修改似乎很简单。它实际上在几个小时内就起作用了。现在,我正在寻找一种在Android端集成相同功能的方法。我想当我完成后,我可能会发布一个拉请求。核心插件使用android中的摄像头应用程序,而你对摄像头应用程序没有任何控制权,你必须创建自己的插件,使用摄像头直接。你所指的页面应该是我正在寻找的教程。到目前为止,我已经了解到,我可能希望使用TextureView而不是SurfaceView将透明图片叠加到相机视图上。这篇文章似乎涵盖了所有其他内容。我希望能够在标准插件中干净地集成所有内容,并可能提交一个pull请求,但似乎我必须使用两个插件,或者将我拥有的和我在自定义插件中错过的结合起来,当差异大约为50行代码时,必须手动与cordoba插件相机保持同步。Hi@mico,您是否最终成功地为Android和ios构建了一个可用的覆盖插件?我正在寻找一个非常基本的插件,它基本上可以让我在相机应用程序上显示一个透明的png或html。我在互联网搜索中找不到一个