Android Camera开发系列(下)——自定义Camera实现拍照查看图片等功能
2023-09-14 08:59:39 时间
?xml version="1.0" encoding="utf-8"? LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" SurfaceView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" / Button android:id="@+id/btn_camera" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="拍照" / /LinearLayout
这里因为是模拟器,他只有前置摄像头,本应该旋转270°的,我们只要知道通过以上的方法可以同步预览影像就可以了
btn_camera = (Button) findViewById(R.id.btn_camera); btn_camera.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 获取当前相机参数 Camera.Parameters parameters = mCamera.getParameters(); // 设置相片格式 parameters.setPictureFormat(ImageFormat.JPEG); // 设置预览大小 parameters.setPreviewSize(800, 480); // 设置对焦方式,这里设置自动对焦 parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); mCamera.autoFocus(new AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { // 判断是否对焦成功 if (success) { // 拍照 第三个参数为拍照回调 mCamera.takePicture(null, null, pc); });
?xml version="1.0" encoding="utf-8"? LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" TextView android:id="@+id/tv_path" android:layout_width="wrap_content" android:layout_height="wrap_content" / ImageView android:id="@+id/iv_photo" android:layout_width="wrap_content" android:layout_height="wrap_content" / /LinearLayout
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo); String path = getIntent().getStringExtra("path"); tv_path = (TextView) findViewById(R.id.tv_path); // 显示路径 tv_path.setText(path); iv_photo = (ImageView) findViewById(R.id.iv_photo); // 调整角度 try { FileInputStream fis = new FileInputStream(path); Bitmap bitmap = BitmapFactory.decodeStream(fis); // 矩阵 Matrix matrix = new Matrix(); matrix.setRotate(90); bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); iv_photo.setImageBitmap(bitmap); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace();
但是相机是一个大坑,各种不兼容,而且还有前后置摄像头之分哟,上面代码病没有提及前置,前置需要翻转270°,并且我们之前就应该判断是否是前置,再进行旋转,这个只是初学的示例代码,有兴趣的可以下载demo玩玩
“千变万化”——神奇的Android图片规格调整器(功能梳理篇) 由于放假的缘故,还是没时间直接上手APP,所以趁着晚上有时间,不妨为“千变万化”APP梳理一下功能。这样也能为我构思该APP提供更好的设计方向,防止出现想到一处写一处的混乱情况。
相关文章
- Android开发之Mediaplayer状态转换图及音频焦点
- Android开发之Mediaplayer
- 如何将为Android开发的AIR应用转移到SD卡
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- Android开发之旅:android架构
- Android 开发之旅:短信的收发及在android模拟器之间实践(二)
- Android开发学习---使用Intelij idea 13.1 进行android 开发
- 《精通android网络开发》--使用Socket实现数据通信
- 《android开发艺术探索》读书笔记(十五)--Android性能优化
- 《android开发艺术探索》读书笔记(十一)--Android的线程和线程池
- 【ANDROID游戏开发之五】游戏注册界面DEMO-实现两个ACTIVITY之间的切换与数据交互!
- 【ANDROID游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2ME的游戏类库与ANDROID游戏开发!
- 【ANDROID游戏开发二十七】讲解游戏开发与项目下的HDPI 、MDPI与LDPI资源文件夹以及游戏高清版本的设置
- delphi xe 之路(28)开发 Android URI简介
- Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- Android开发中这些小技巧
- 《精通android网络开发》--使用Socket实现数据通信
- Android开发指南(34) —— Multimedia and Camera - Media Playback
- Android开发学习笔记(十四)横屏竖屏状态判断
- Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
- 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )
- 【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 项目中配置 OpenSSL 开源库 | 使用 OpenSSL 开源库解密 dex 文件 )
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 加载 dex 文件 | 将系统的 dexElements 与 应用的 dexElements 合并 | 替换操作 )
- android应用开发-从设计到实现 3-4 静态原型的状态栏
- 在win7在结构cocos2d-x v3.2rc0开发环境(For Android)
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
- Android车载应用开发指南2.0版,全网阅读量10k+
- Android 系统应用开发实战
- android开发,Android Studio Build Output 输出的中文显示乱码