前言
一、环境搭建
二、Demo开发
1.参考
2.编译
1.androidx编译不过
3.安装
4.运行
1.增加相机使用权限
2.增加存储读写权限
3.图片保存
5.后续
前言
之前一直研究相机Framework和HAL的代码,对相机应用这块感觉有点缺失,写一个简单的demo应该也不难,动手开干
一、环境搭建往回翻了下历史博客中,当时有记录使用Eclipse开发应用的记录,但看完之后各种软件下载安装等特别复杂,于是网上又搜索了下,找到了一个介绍非常详细和简单的开发指导:使用AndroidStudio,参考:android studio安装教程(包安装成功,不成功你找我)_急递客的博客-CSDN博客_安卓studio
考虑到自己手机的Android版本,选择了API Level 28,模拟器Android Virtual Device(AVD)不知道什么原因没有安装成功,也没继续研究,直接用自己的手机调。
二、Demo开发 1.参考深入理解Android相机体系结构之三_xiaozi63的博客-CSDN博客_android oncompleted
这篇文章在介绍TextureView和ImageReader等是非常准确的,里面也给了一个简单的demo实例代码,代码也是非常具有参考意义的,涉及预览、拍照,就来调它了。
2.编译 1.androidx编译不过
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
这里面使用到了androidx,这应该是更高的版本,也没解决(其实也不想投入过多精力去解决,因为应用毕竟不是自己的重点),使用低版本的库提替代即可
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.annotation.NonNull;
替换之后,解决其他编译问题:比如使用ContextCompat替换ActivityCompat等
2.增加R.id.textview和R.id.button这个应该是在activity_main.xml增加控件,随便找个模板加上即可
3.安装
点击“Run App”之后开始在手机上install,install之后第一次安装成功,但卸载之后再次install的话显示安装成功,但在手机上也没找到。Terminal上显示的错误是“Activity class {package/class} does not exist ”,参考Activity class {package/class} does not exist原因及解决方法_程序猿秃头之路的博客-CSDN博客
通过手动adb uninstall解决
4.运行 1.增加相机使用权限打开app,直接奔溃退出,抓log,显示“"com.example.administrator.myapplication" (PID 10277, UID 29529) cannot open camera "0" without camera permission”
在AndroidManifest.xml里增加相机使用权限
2.增加存储读写权限
相机预览正常了,但是拍照挂掉,“AndroidRuntime: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!”,想到拍照会去写文件 *** 作,所以需要增加存储权限
3.图片保存
图片保存路径打印显示是/storage/emulated/0/photo-test.jpg,可以按照自己想要的路径去保存,但图库中不会立刻显示,过会时间才会显示,可以搜索下解决。
5.后续 1.setOnFrameAvailableListener该Demo没有使用TextureView访问预览的数据,也就是要写一个setOnFrameAvailableListener这个可以继续增加相关代码验证
2.google 原生appgoogle原生app代码路径
将 Google Camera2 迁移为 Gradle 编译
3.SurfaceView和SurfaceTexture一文了解surface,surfaceview,surfaceTexture,GLsurfaceView
像美图秀秀这种三方应用,需要通过surfacetexture获取buffer数据进行二次处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)