使用系统照相机需要注意的问题

转自: http://blog.csdn.net/findsafety/article/details/11529177


在项目中需要启用系统照相机来拍照。本来很容易的一个问题。但在适配中出现了问题。

简单说一下问题:

    有些手机拍照成功,有些手机拍完照后确定返回后activity数据丢失,被销毁了。

问题查找:

    经过代码查找发现,当这些出问题的手机被调用系统手机拍照时,当前activity被销毁了之后又被重新创建了。即Acitivity 执行了ondestory()-->onCreate(),所以Activity被重新创建了从而内部的数据丢失,而按照正常的逻辑该Activity应该入后台堆栈。一开始以为是系统启用照相机内存不够自动销毁回收。可有些手机不会出现该问题。很无奈。

    之后经过本人细心研究activity的生命周期才恍然大悟,原来当手机横竖屏时系统会重新创建一个activity,这就是为什么上个activity会ondestory()-->onCreate()。但为什么有些手机会执行有些不会呢。问题就出在横竖屏上。因为有些手机的系统照相机弄的很炫会自动旋转90度,从而导致了横竖屏的发生(--!看来最潮的也不是好东西,苦了我们这些碼农)。这就是为什有些手机会发生有些不会。跟系统照相机是否旋转有关系。

    最后贴上解决方案。

    AndroidMainifest.xml中加入

      <activity
            android:name=".Activity"
            android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden"
            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
        <activity

    复写acitivity的onConfigurationChanged方法

   @Override
    public void onConfigurationChanged(Configuration newConfig) {

      其实这里什么都不要做
    super.onConfigurationChanged(newConfig);
    }


如果是比较低版本就可以这样,如果较高版本可能需要加入其它属性才能触发onConfigurationChanged,即android:configChanges="orientation|keyboardHidden|screenSize"


STM32照相机系统设计是一种基于STM32单片机的嵌入式系统,主要用于数字图像处理和照相功能。它包括图像采集、图像处理、图像存储、显示等多个模块,能够实现高质量的图像采集和处理,同时支持多种图像格式。 下面是一个基于STM32照相机系统的设计流程: 1. 系统架构设计 首先需要确定系统的整体架构,包括硬件和软件部分。硬件部分需要确定使用的传感器、处理器、存储器、显示器等,软件部分需要确定使用的操作系统、图像处理算法、驱动程序等。 2. 硬件设计 硬件设计包括原理图设计和PCB布局设计。原理图设计需要根据系统架构确定各个模块的电路连接方式和电气特性。PCB布局设计需要根据原理图设计完成电路板的布局和布线,同时需要考虑EMC(电磁兼容)和ESD(静电放电)等问题。 3. 软件设计 软件设计包括系统内核、驱动程序、应用程序和图像处理算法等。系统内核需要选择适合的RTOS(实时操作系统),驱动程序需要根据硬件设计完成,应用程序需要根据系统架构完成,图像处理算法需要根据应用需求完成。 4. 调试测试 完成硬件和软件设计后,需要进行调试测试。调试测试包括硬件和软件的联调、功能测试、性能测试等。在测试过程中需要注意电路板的电气特性、软件的正确性和稳定性等问题。 5. 生产制造 完成调试测试后,需要进行生产制造。生产制造包括电路板的生产、元器件的采购、电路板的组装、测试等。在生产制造过程中需要注意生产效率、质量控制等问题。 总之,基于STM32照相机系统的设计需要进行系统架构设计、硬件设计、软件设计、调试测试和生产制造等多个过程,需要具备一定的硬件和软件设计能力和实践经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值