- 浏览: 277844 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
flyingsnowff:
支付宝官方在线文档中心:https://doc.open.al ...
如何集成支付宝官方文档 -
timer_yin:
果然是这样
[转帖] 安装Eclipse插件长时间卡在 calculating requirements and dependencies -
dai_lm:
lyx0224 写道强~~~~~过奖,只是总结了前人的智慧,拼 ...
通过Wifi实现设备间的通信 -
lyx0224:
强~~~~~
通过Wifi实现设备间的通信 -
Goro:
帅!
自己封装的支持自动对焦的CameraView
由于Android自身的关系,camera必须在landscape模式下才可以显示正常,如果是在portrait模式下,就要把脖子转90度才能“正常”观看了
听说Android的SDK升级到1.5(cupcake)后已经可以解决这个问题了,就上网找了一下,发现有些人说可以尝试使用parameters.set("rotation", 90),试了一下,无效。
最近由于项目原因,继续研究了下,找到了一个“曲线救国”的方法
parameters.set("orientation", "portrait");
由于这个方法没有出现在Android的官方的api文档中,所以可能会有些问题。。。吧
谁知道呢,先用着再说
(哎,这个方法被2.0毙了)
-----------------------更新-----------------------
通过反射,貌似可以解决预览
1.5 - OK
1.6 - OK
2.2 - OK
2.3 - OK
4.0 - OK
其余的没有测试,希望有能力的朋友帮忙测一下,然后给个结果
thanks, I have fixed the problem.
听说Android的SDK升级到1.5(cupcake)后已经可以解决这个问题了,就上网找了一下,发现有些人说可以尝试使用parameters.set("rotation", 90),试了一下,无效。
最近由于项目原因,继续研究了下,找到了一个“曲线救国”的方法
parameters.set("orientation", "portrait");
由于这个方法没有出现在Android的官方的api文档中,所以可能会有些问题。。。吧
谁知道呢,先用着再说
(哎,这个方法被2.0毙了)
-----------------------更新-----------------------
通过反射,貌似可以解决预览
1.5 - OK
1.6 - OK
2.2 - OK
2.3 - OK
4.0 - OK
其余的没有测试,希望有能力的朋友帮忙测一下,然后给个结果
public class CameraView extends SurfaceView implements SurfaceHolder.Callback { /** * This is a holder that holding a display surface. */ private SurfaceHolder mHolder = null; private int sdk = 3; /** * This is a camera object using for connect/disconnect with the camera * service,and so on. */ private Camera mCamera; /** * Perform inflation from XML and apply a class-specific base style. This * constructor of View allows subclasses to use their own base style when * they are inflating. * * @param context * The Context the view is running in, through which it can * access the current theme, resources, etc. * @param attrs * The attributes of the XML tag that is inflating the view. * @param defStyle * The default style to apply to this view. If 0, no style will * be applied (beyond what is included in the theme). This may * either be an attribute resource, whose value will be retrieved * from the current theme, or an explicit style resource. */ public CameraView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } /** * Constructor that is called when inflating a view from XML. This is called * when a view is being constructed from an XML file, supplying attributes * that were specified in the XML file. This version uses a default style of * 0, so the only attribute values applied are those in the Context's Theme * and the given AttributeSet. * * @param context * The Context the view is running in, through which it can * access the current theme, resources, etc. * @param attrs * The attributes of the XML tag that is inflating the view. */ public CameraView(Context context, AttributeSet attrs) { super(context, attrs); init(); } /** * Simple constructor to use when creating a view from code. * * @param context * The Context the view is running in, through which it can * access the current theme, resources, etc. */ public CameraView(Context context) { super(context); init(); } public void init() { if (mHolder == null) { mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); sdk = getSDKInt(); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { try { // rotate camera 90 degree on portrait mode if (getContext().getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { if (sdk <= 4) { // 1.5 & 1.6 Camera.Parameters parameters = mCamera.getParameters(); parameters.set("orientation", "portrait"); mCamera.setParameters(parameters); } else { setDisplayOrientation(mCamera, 90); } } } catch (Exception e) { e.printStackTrace(); } startPreview(); } /** * rotate camera with any degree, only available for SDK 5 and later * * @param camera * @param angle */ private void setDisplayOrientation(Camera camera, int angle) { Method downPolymorphic; if (sdk <= 4) return; try { if (sdk > 4 && sdk < 8) { // parameters for pictures created by a Camera service. Camera.Parameters parameters = mCamera.getParameters(); // 2.0, 2.1 downPolymorphic = parameters.getClass().getMethod( "setRotation", new Class[] { int.class }); if (downPolymorphic != null) downPolymorphic.invoke(parameters, new Object[] { angle }); // Sets the Parameters for pictures from this Camera // service. mCamera.setParameters(parameters); } else { downPolymorphic = camera.getClass().getMethod( "setDisplayOrientation", new Class[] { int.class }); if (downPolymorphic != null) downPolymorphic.invoke(camera, new Object[] { angle }); } } catch (Exception e) { } } @Override public void surfaceCreated(SurfaceHolder holder) { // get Camera object. try { mCamera = Camera.open(); mCamera.setPreviewDisplay(holder); } catch (RuntimeException e) { e.printStackTrace(); releaseCamera(); } catch (IOException e) { e.printStackTrace(); releaseCamera(); } } public void stopPreview() { if (mCamera != null) { mCamera.stopPreview(); } } public void startPreview() { if (mCamera != null) { mCamera.startPreview(); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { releaseCamera(); } private void releaseCamera() { if (mCamera != null) { mCamera.stopPreview(); mCamera.release(); } mCamera = null; System.gc(); } private int getSDKInt() { // this is safe so that we don't need to use SDKInt which is only // available after 1.6 try { return Integer.parseInt(Build.VERSION.SDK); } catch (Exception e) { return 3; // default to target 1.5 cupcake } } }
评论
2 楼
dai_lm
2010-03-29
biAji 写道
http://code.google.com/p/android/issues/detail?id=1193
thanks, I have fixed the problem.
1 楼
biAji
2010-03-21
http://code.google.com/p/android/issues/detail?id=1193
发表评论
-
获取Android Device的信息
2013-12-26 15:47 1497String phoneInfo = "PROD ... -
看雪学院-Android安全
2013-11-25 09:40 997http://bbs.pediy.com/forumdispl ... -
Toast原来也可以多样化
2013-09-18 13:48 1218Style 1: 默认 Toast def = Toast ... -
Google Map API V2
2013-05-13 13:37 2241以后如果要开发包含google map的程序就更麻烦咯 htt ... -
用OpenGL实现无限循环的coverflow
2013-04-26 14:16 4895网上找了很久,都是用Gallery实现的,效果不是很满意,结果 ... -
如何集成支付宝官方文档
2013-02-08 11:24 4547官方文档下载地址 https://b.alipay.com/o ... -
[转帖]裁剪图片
2013-01-30 17:22 986原帖:http://www.linuxidc.com/Linu ... -
MonkeyRunner的使用
2013-01-29 13:06 9737要使用MonkeyRunner,就要 ... -
重复执行某段代码
2012-12-29 14:36 1615用handler就可以了 private Handler ... -
选择音频的输出方式
2012-12-12 15:00 2000可以选择用耳机还是扬声器播放(蓝牙的就留到下次吧),要求SDK ... -
使FrameLayout的Gravity等于Center
2012-12-06 16:42 1777由于无法设置FrameLayout的Gravity,所以只能通 ... -
在Android上模拟MetroUI
2012-10-31 15:49 2671在Android上模拟WP7的MetroUI MetroIt ... -
Uri.Builder与String互转
2012-08-14 15:56 2378Uri.Builder -> String Uri. ... -
判断屏幕尺寸
2012-07-17 10:21 1910// support from API 4 final ... -
自己封装的支持自动对焦的CameraView
2012-07-12 13:52 3692import java.io.BufferedOutp ... -
ADT 离线包下载地址
2012-07-06 14:32 2093更新ADT真是件苦恼的事啊 20.0.0的下载地址 http ... -
通过Wifi实现设备间的通信
2012-06-05 15:19 2091服务器端,建立监听(方法更新,可以同时连接多个Client) ... -
IP地址的获取及解析
2012-06-05 13:31 1289获取IP地址 WifiManager wifiManage ... -
判断网络是否有效
2012-05-28 17:32 996protected boolean isInternetA ... -
悬浮窗
2012-05-28 17:21 3134类似于360监视网络速度的那个悬浮窗 public cl ...
相关推荐
本篇文章将详细讲解如何在Android应用中使用ZXing库实现竖屏模式下的条码扫描功能,同时解决摄像头旋转90度的问题。 首先,我们需要在项目中集成ZXing库。可以通过Gradle依赖或者下载ZXing的源码将其添加到项目中。...
最后,`Android Zxing 扫描条码实现竖屏模式(portrait mode) 摄像头camera 旋转90度.txt`文档很可能是详细的实现步骤或代码示例。它可能包含了如何在ZXing库基础上进行修改,以适应竖屏扫描和旋转相机的详细说明。 ...
当尝试在竖屏(portrait layout)模式下使用Camera API时,可能会遇到两个主要问题:图像倾斜90度和长宽比例失真。这是由于Android底层处理摄像头数据的方式导致的。摄像头采集的原始图像数据是按照横屏模式进行的,...
这些方向在不同的设备和用户交互模式下可能会变化。 Camera预览方向的核心在于正确设置Camera对象的DisplayOrientation。DisplayOrientation并不是设备物理上的旋转角度,而是相机预览图像相对于屏幕的方向。通常,...
在Android平台上,相机(Camera)方向是一个常见的开发问题,涉及到设备的传感器、屏幕布局以及如何适当地捕捉和显示图像。本文将深入探讨Android相机方向的相关知识点,并基于提供的资源文件列表进行解析。 首先,...
总结来说,为了让ZXing 2.1在竖屏模式下正常工作,我们需要修改四个关键部分:AndroidManifest.xml中的屏幕方向设置,DecodeHandler.java中的图像旋转处理,CameraManager.java中的取景框尺寸计算,以及...
在CameraConfigurationManager.java的`setDesiredCameraParameters(Camera camera)`方法中,加入`camera.setDisplayOrientation(90);`以使相机预览画面适应竖屏。 5. **调整CameraConfigurationManager的...
然而,在一些情况下,开发者会遇到ZXing库中的屏幕方向设置问题,导致扫描界面显示不友好。本文介绍了如何通过修改ZXing源代码,将默认的横屏扫描界面改为竖屏扫描,具体以Delphi环境和Android平台为例,逐步说明了...
在iOS开发中,`UIImagePickerController` 是苹果提供的一个关键组件,用于让用户从设备的相册或者直接通过摄像头拍照来获取图片。这个组件对于许多应用程序来说是不可或缺的,特别是那些需要用户上传或选择个人照片...
3. 在`CameraConfigurationManager`类的`setDesiredCameraParameters(OpenCamera camera, boolean safeMode)`方法中,设置摄像头的显示方向为90度,以便正确显示预览图像: ```java theCamera....
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制-p155 5.1 具有正则表达式的...
4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制-p155 5.1 具有正则表达式的...
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制-p155 5.1 具有正则表达式的...