如何在没有服务或线程预览的情况下进行相机捕获?

2023-11-24

是否可以在不显示相机预览的情况下捕获图像?我有一个要求,我应该能够从线程或服务捕获图像,而不干扰前台应用程序,因为我不想显示相机预览,但我仍然想捕获背景图像并将其存储在设备中


试试这个代码。活动启动时它将单击图片。它有预览,但预览大小设置为 0 x 0 dp。

package fortyonepost.com.pwop;

import java.io.IOException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.ImageView;

public class TakePicture extends Activity implements SurfaceHolder.Callback
{
    //a variable to store a reference to the Image View at the main.xml file
    private ImageView iv_image;
    //a variable to store a reference to the Surface View at the main.xml file
    private SurfaceView sv;

    //a bitmap to display the captured image
    private Bitmap bmp;

    //Camera variables
    //a surface holder
    private SurfaceHolder sHolder;
    //a variable to control the camera
    private Camera mCamera;
    //the camera parameters
    private Parameters parameters;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //get the Image View at the main.xml file
        iv_image = (ImageView) findViewById(R.id.imageView);

        //get the Surface View at the main.xml file
        sv = (SurfaceView) findViewById(R.id.surfaceView);

        //Get a surface
        sHolder = sv.getHolder();

        //add the callback interface methods defined below as the Surface View callbacks
        sHolder.addCallback(this);

        //tells Android that this surface will have its data constantly replaced
        sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }

    @Override
    public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3)
    {
         //get camera parameters
         parameters = mCamera.getParameters();

         //set camera parameters
         mCamera.setParameters(parameters);
         mCamera.startPreview();

         //sets what code should be executed after the picture is taken
         Camera.PictureCallback mCall = new Camera.PictureCallback()
         {
             @Override
             public void onPictureTaken(byte[] data, Camera camera)
             {
                 //decode the data obtained by the camera into a Bitmap
                 bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
                 //set the iv_image
                 iv_image.setImageBitmap(bmp);
             }
         };

         mCamera.takePicture(null, null, mCall);
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder)
    {
        // The Surface has been created, acquire the camera and tell it where
        // to draw the preview.
        mCamera = Camera.open();
        try {
           mCamera.setPreviewDisplay(holder);

        } catch (IOException exception) {
            mCamera.release();
            mCamera = null;
        }
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder)
    {
        //stop the preview
        mCamera.stopPreview();
        //release the camera
        mCamera.release();
        //unbind the camera from this object
        mCamera = null;
    }
}

参考:http://www.41post.com/3794/programming/android-take-a-picture-without-displaying-a-preview

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有服务或线程预览的情况下进行相机捕获? 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 如何对这个字符串进行子串化

    我想得到这个字符串的 4 个部分 String string 10 trillion 896 billion 45 million 56873 我需要的4个部分是 10万亿 8960亿 4500万 和 56873 我所做的是删除所有空格 然
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分

随机推荐

  • 在 Android 应用程序中设置最小堆大小的目的是什么?

    在Android操作系统的谷歌日历应用程序中 您将在onCreate方法中遇到这一行日历活动 Eliminate extra GCs during startup by setting the initial heap size to 4M
  • 如何在 X Windows 上将进程窗口置于前台? (C++)

    我有进程的 PID 和名称 我想把它放在 Linux ubuntu 上的前面 在Mac上我会简单地做SetFrontProcess pid 在 Windows 上 我会枚举窗口 选择我想要的窗口 然后调用SetWindowPos hwnd
  • 如何最好地混淆我的 C# 产品许可证验证码?

    如何最好地混淆我的 C net 应用程序产品密钥验证码 将其放在 INTERNAL SEALED CLASS CLASSNAME 中是否足够或者我需要做更多的事情吗 Thanks 访问修饰符如internal and sealed与混淆或代
  • 在子选项卡上显示进度条,直到 WebView 加载

    在 Android 应用程序中 我使用 TabView 其中一个选项卡显示 WebView 但在网页加载之前 页面是空白的 在页面加载之前如何显示进度条 它不能位于标题栏中 因为它被选项卡主机隐藏了 我为此使用了 ProgressBar 像
  • 在页面中随机移动图像

    我创建了三张 png 热气球图像 每个尺寸都不同 因此它们散发出 深度 的概念 对这些 png 进行编码以便它们像热气球一样在我的容器中移动和漂浮的最佳方法是什么 我已经尝试了 Spritely 网站上的以下代码 我对其进行了修改 ball
  • std::string 如何使用 -fwhole-program 在 GCC 中分配内存?

    Update 以下问题似乎取决于 fwhole program option 我一直在玩弄内存分配 遇到了一个小谜团 在 GCC 4 6 中 如何std string分配其内存 edit 当我编译时 fwhole program 有以下测试
  • 如何按日期对数据框进行分组?

    我有一个以下格式的 csv 文件 Date Time Value 1899 01 01 4 00 00 1 1899 01 01 4 01 00 2 1899 01 01 4 02 00 3 1899 01 01 4 03 00 4 189
  • 如何在相对于父窗口中的控件的位置显示模态窗体(opener)

    好吧 我有一个打开的表单 ShowDialog this 我尝试使用其更改表单的位置Location财产 但我不明白这个位置到底是相对于什么 我想在某个按钮下方打开此表单 那么如何才能做到这一点呢 Thanks A Form will ex
  • 如何在 docker 容器上部署 php-fpm 并在本地主机上部署 apache/nginx (Ubuntu)

    我们可以将apache和php部署在单独的docker容器中 然后将它们链接起来 但是有没有办法在docker容器中本地安装apache 使用apt get install apache2 和php fpm 然后链接它们 Thanks 是的
  • jQuery $(document).ready () 触发两次

    我一直在网上搜寻 试图找出这里发生的事情 但我无法得到具体的答案 我有一个 document ready在我的网站上 无论其中包含什么代码 它都会运行多次 我已经阅读了 jQuery 的错误报告 了解如何 ready如果语句中发生异常 事件
  • 将 play 作为 war 文件部署到 servlet 容器中,即使它大量使用 JPA?

    我是个新手 事实上我现在就读到了有关它的内容 我应该说些什么 问题胜于问题 目前我正在启动一个项目 该项目依赖于许多特殊的java库 hibernate spatial jts等 因为它还应该实现全面的 REST API 所以我必须在 Dj
  • 如何在 bash 中在一行中运行多个后台命令?

    我通常运行多个命令 如下所示 sleep 2 sleep 3 or sleep 2 sleep 3 但是如果我想从一个命令行命令在后台运行它们怎么办 sleep 2 sleep 3 不起作用 更换也不行 with 有办法做到吗 您究竟希望他
  • 需要动态设置quartz cron表达式

    我在我的Web应用程序 Servlet Web应用程序 中使用quartz 下面是quartz property文件和quartz job xml的快照 石英性能 Configure the Job Initialization Plugi
  • .*(点星)如何工作? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我已经明白了 表示任何字符的零个或多个 但是 有人可以解释一下如何 在接下来的工作中又会
  • 允许“Enter”键按下提交按钮,而不是仅使用 MouseClick

    我现在正在学习 Swing 课程以及与之相关的一切 我已经编写了一个玩具程序 它会提示输入名称 然后显示一个带有消息 您已输入 您的名字 的 JOptionPane 我使用的提交按钮只能单击 但我也想让它与 Enter 按钮一起使用 我尝试
  • 在条件评估期间如何从查询返回布尔值?

    我需要这样的东西 select len someLongTextColumn 0 as isEmpty 上面的方法不行 有什么替代方案吗 如果转换为位 那么大多数客户端代码可以直接将其读取为布尔值 SQL Server没有布尔类型 SELE
  • SQL Server DRI(ON DELETE CASCADE)慢吗?

    我一直在分析我们的一个系统中与特别慢的删除操作相关的反复出现的 错误报告 性能问题 长话短说 看来CASCADE DELETE钥匙在很大程度上负有责任 我想知道 a 这是否有意义 以及 b 为什么会这样 我们有一个小部件的模式 这些小部件位
  • 增强精神3在哪里?是被遗弃了吗?

    我找不到boost Spirit 3的任何下载 好像12月底官网就不说了 它去哪儿了 源代码可在Github 文档是here 引用自Blog C Now 2015 今天是 Spirit X3 的正式发布 又名 Spirit 3 0 0 X3
  • 操作栏菜单显示在屏幕外

    我有一个带有旧式菜单的应用程序 将主题更改为 Holo 并将目标 SDK 版本切换为 14 后 软菜单按钮消失了 没关系 但使用操作栏上的菜单按钮会显示文本菜单大部分在屏幕外 如所附图片所示 您有什么想法如何解决这个问题吗 我已经解决了这个
  • 如何在没有服务或线程预览的情况下进行相机捕获?

    是否可以在不显示相机预览的情况下捕获图像 我有一个要求 我应该能够从线程或服务捕获图像 而不干扰前台应用程序 因为我不想显示相机预览 但我仍然想捕获背景图像并将其存储在设备中 试试这个代码 活动启动时它将单击图片 它有预览 但预览大小设置为