解决Android相机竖屏预览的问题
来源:互联网 发布:2017好看的日剧 知乎 编辑:程序博客网 时间:2024/04/28 17:01
在AAndroidManifest.xml 中的<activity> </activity>设置屏幕方向为竖屏:
android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" >Android开发文档中,设置预览方向的代码如下:
http://developer.android.com/intl/zh-cn/training/camera/cameradirect.html
public static void setCameraDisplayOrientation (Activity activity, int cameraId, android.hardware.Camera camera) {android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo();android.hardware.Camera.getCameraInfo (cameraId , info);int rotation = activity.getWindowManager ().getDefaultDisplay ().getRotation ();int degrees = 0;switch (rotation) {case Surface.ROTATION_0:degrees = 0;break;case Surface.ROTATION_90:degrees = 90;break;case Surface.ROTATION_180:degrees = 180;break;case Surface.ROTATION_270:degrees = 270;break;}int result;if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {result = (info.orientation + degrees) % 360;result = (360 - result) % 360; // compensate the mirror} else {// back-facingresult = ( info.orientation - degrees + 360) % 360;}camera.setDisplayOrientation (result);}
但是
onPreviewFrame(byte[], Camera)
中获取的 (JPEG pictures, or recorded videos )图像数据还是横屏的。所以如果使用SurfaceView来实现绘图显示,绘制在一个Canvas上,在画布上绘制时,需要将图片旋转90度,才能实现正确的竖屏显示。下边是旋转图片的代码:
private Bitmap rotateImage(int angle,Bitmap bitmap) { //旋转图片 Matrix matrix = new Matrix(); matrix.postRotate(angle); // 创建新的图片 Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); return resizedBitmap; }
后来我把设置预览方向的方法setCameraDisplayOrientation()去掉,仍然可以竖屏显示,原因是在使用画布绘制是,绘制的Bitmap已经旋转成竖屏的了。只是使用Canvas这种方式,把图片旋转后显示,效果不流畅,可能对每一帧使用matrix.postRotate(angle)进行旋转,耗时较大。希望有其他方法解决竖屏预览的问题!
0 0
- 解决Android相机竖屏预览的问题
- 关于自定义相机预览问题的解决
- android 4.4相机预览、录像花屏的问题
- android解决相机开关的问题
- Android相机的使用(可以预览)
- Android相机预览方向
- android自定义相机,解决预览扭曲,隐藏setParameters failed
- Android调用相机预览黑屏app passed NULL surface解决
- Android调用相机预览黑屏app passed NULL surface解决
- Android学习【1】解决android摄像头预览的变形问题
- android解决相机拍照照片被旋转的问题
- 解决Android 6.0以上的相机权限适配问题
- 解决Eclipse Android XML视图预览不了的问题
- Android开发中graphic layout看不到预览问题的解决
- 解决Android布局添加EditText之后无法预览的问题
- 解决Android studio无法预览xml布局文件的问题
- Android解决小米手机相机和相册的问题(适配小米手机相机和相册)
- 适配android 7的自定义相机的预览及拍照
- 程序员自我提高的几点建议 很实诚
- JVM内存溢出深度分析
- 杭电2521 反素数
- Java NIO系列实用教程目录索引
- vmstat :侦测系统资源变化
- 解决Android相机竖屏预览的问题
- 关于ListView和ScrollView嵌套问题的解决
- x3.1.1 cocos new命令不copy frameworks
- 完美解决全面屏蔽Google教程(终结者)
- 从零单排入门机器学习:线性回归(linear regression)实践篇
- 控制台程序的中文输出乱码问题,printf,wprintf与setlocale
- Android应用之——谷歌官方Json解析工具Gson的使用
- 线性规划与网络流24题之海底机器人问题 最大费用最大流
- android service使用